yok*_*oko 2 sql foreign-keys jpql
我想在eclipse JPQL查询中编写这个SQL语句.它适用于SQL,但我不确定如何在eclipse中编写它.
SELECT *
FROM hardware h
WHERE h.`Staffid` LIKE '%150%'
Run Code Online (Sandbox Code Playgroud)
我在硬件表中的staffid是员工表的staffid主键的外键.所以硬件表中的工作人员是
private Staff staff;
Run Code Online (Sandbox Code Playgroud)
这是我编写的用于运行搜索的内容:
@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;
}
}
Run Code Online (Sandbox Code Playgroud)
但它表明
javax.servlet.ServletException: java.lang.IllegalStateException:
Exception Description: Transaction is currently active
Run Code Online (Sandbox Code Playgroud)
当我运行搜索.
任何人都可以帮我纠正吗?
like运算符仅适用于字符串.所以做这样的事情:
Query query = entityManager
.createQuery("SELECT st from Hardware st where st.staff.id LIKE :x");
query.setParameter("x", '%' + a.getId() + '%');
Run Code Online (Sandbox Code Playgroud)
链接: