javax.persistence.TransactionRequiredException: Executing an update/delete query
2020-12-13 15:40
标签:管理 action 查找 过程 rod param begin native abs 最近在springboot中整合jpa的时候碰到一个异常,异常如下 javax.persistence.TransactionRequiredException: Executing an update/delete query public int sqlUpdate(String sql,String[] arrs){ javax.persistence.TransactionRequiredException: Executing an update/delete query 标签:管理 action 查找 过程 rod param begin native abs 原文地址:https://www.cnblogs.com/renjiaqi/p/11613774.html
at org.hibernate.query.internal.AbstractProducedQuery.executeUpdate(AbstractProducedQuery.java:1496)
该异常一般出现在执行更新删除操作时出现,jpa要求执行这些操作时需要加上事务管理
当使用@Query调用自定义sql时在执行方法前加上@Modifying@Transactional一般就能解决
但是开发过程中由于反复出现调用自定义sql的场景,所以为了调用方便决定利用EntityManager.Query做个封装,然后就出问题了…利用EntityManager执行update语句即使加上了@Modifying@Transactional仍然出现Executing an update/delete query的异常,在反复查找后终于找到一个解决方案,如下:
EntityManager em=emf.createEntityManager();
Query query = em.createNativeQuery(sql);
for(int i = 0; i query.setParameter(i+1,arrs[i]);
}
em.getTransaction().begin();
int num = query.executeUpdate();
em.getTransaction().commit();
em.close();
return num;
}
利用EntityManager内的事务控制器进行事务管理
————————————————
版权声明:本文为CSDN博主「言一木」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_37769855/article/details/91437305
文章标题:javax.persistence.TransactionRequiredException: Executing an update/delete query
文章链接:http://soscw.com/essay/35324.html