【发布时间】:2013-03-23 02:21:19
【问题描述】:
当我尝试运行此代码时出现此错误。
错误:
javax.persistence.TransactionRequiredException:通过容器管理的事务实体管理器的非事务访问获得的 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();
}
}
我还有其他实现相同的功能,它们不会引发此错误。
任何建议将不胜感激。
谢谢。
【问题讨论】:
标签: jpa transactions sql-update jpql entitymanager