Я хочу написать этот оператор SQL в JPQL-запросе eclipse. Он работает в SQL, но я не уверен, как написать его в Eclipse.
SELECT *
FROM hardware h
WHERE h.`Staffid` LIKE '%150%'
Мой идентификатор персонала в таблице оборудования является внешним ключом первичного ключа персонала таблицы персонала. Таким образом, персонал в аппаратной таблице
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
когда я запускаю поиск.
Может кто-нибудь помочь мне исправить?