簡體   English   中英

將SQL語句'LIKE'轉換為JPQL語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM