[英]Convert SQL statement 'LIKE' to JPQL statement
我想在Eclipse JPQL查詢中編寫此SQL語句。 它可以在SQL中工作,但是我不確定如何在Eclipse中編寫它。
SELECT *
FROM hardware h
WHERE h.`Staffid` LIKE '%150%'
我在硬件表中的人員ID是人員表的人員ID主鍵的外鍵。 所以硬件表中的人員是
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
當我運行搜索時。
誰能幫我糾正?
like運算符僅適用於字符串。 所以做這樣的事情:
Query query = entityManager
.createQuery("SELECT st from Hardware st where st.staff.id LIKE :x");
query.setParameter("x", '%' + a.getId() + '%');
連結:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.