当我尝试运行此代码时出现此错误。
错误:
javax.persistence.TransactionRequiredException:通过容器管理的事务实体管理器的非事务访问获得的查询对象不支持执行更新
代码:(_ut 是一个 UserTransaction 对象)
公共无效 setMainCategory(整数部门 ID,整数 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();
}
}
我还有其他实现相同的功能,它们不会抛出此错误。
任何建议将不胜感激。
谢谢。