小编use*_*876的帖子

JPQL更新查询执行更新时的事务需要异常

我尝试运行此代码时收到此错误.

错误:

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)

我有其他功能在实现上相同,他们不会抛出此错误.

任何建议将不胜感激.

谢谢.

jpa transactions entitymanager jpql sql-update

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

entitymanager ×1

jpa ×1

jpql ×1

sql-update ×1

transactions ×1