2011-08-03 90 views
2

我想在eclipse JPQL查詢中編寫這條SQL語句。它在SQL中工作,但我不確定如何在eclipse中編寫它。將SQL語句'LIKE'轉換爲JPQL語句

SELECT * 
FROM hardware h 
WHERE h.`Staffid` LIKE '%150%' 

我在硬件表中的staffid是員工表的staffid主鍵的外鍵。所以在硬件表中的工作人員是

private Staff staff; 

這是我寫的運行我的搜索:

@SuppressWarnings("unchecked") 
public List<Hardware> searchstaff(Staff a) { 
    try { 
     entityManager.getTransaction().begin();    

     Query query = entityManager 
      .createQuery("SELECT st from Hardware st where st.staff LIKE :x"); 
     query.setParameter("x", a); 

     List<Hardware> list = query.getResultList(); 
     entityManager.getTransaction().commit();   
     return list;      
    } catch (Exception e) { 
     return null; 
    } 
} 

但它顯示

javax.servlet.ServletException: java.lang.IllegalStateException: 
Exception Description: Transaction is currently active 

當我運行搜索。

任何人都可以幫我改正嗎?

回答