我尝试运行此代码时收到此错误.
错误:
javax.persistence.TransactionRequiredException:通过容器管理的事务EntityManager的非事务性访问获得的Query对象不支持executeUpdate
代码:(_ut是UserTransaction对象)
public void setMainCategory(Integer deptId,Integer catId){
try {
Query setmain = _entityManager.createNamedQuery("Category.setAsMain");
Query removeMain = _entityManager.createNamedQuery("Category.removeMain");
setmain.setParameter("categoryId", catId);
Department d;
d=_entityManager.find(Department.class, deptId);
removeMain.setParameter("department", d);
_ut.begin();
removeMain.executeUpdate();
_ut.commit();
_ut.begin();
setmain.executeUpdate();
_ut.commit();
} catch (Exception e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
我有其他功能在实现上相同,他们不会抛出此错误.
任何建议将不胜感激.
谢谢.