2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 解决 : Could not commit JPA transaction RollbackException: Transaction marked as rollbackOnly

解决 : Could not commit JPA transaction RollbackException: Transaction marked as rollbackOnly

时间:2021-10-17 14:16:22

相关推荐

解决 : Could not commit JPA transaction RollbackException: Transaction marked as rollbackOnly

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

1. 报错如题:

RollbackException: Transaction marked as rollbackOnly

2. 原因是在一个事物 (Transaction)中有另外一个事物,内部事物已经报错了(可能要求回滚)。发生异常后当前的事务就被标记为 rollback-only,外层事务管理器却还想要执行 commit ,这时就会抛出如题异常。

我的出错代码如下 (sql 中把使用本地 sql 和 jpa 混用了,写了个 a ,sql 中并无此字段。):

List<Object> removeList = null;logger.error("\n\n\n-----------uid-----:" + uid + "\n\n\n");if (StringUtils.isNotEmpty(uid)) {EntityManager em = null;try {em = entityManager;String querSql = "SELECT a FROM gaei_work_weight WHERE approver_id != ? AND employee_id = ? ";Query quer = em.createNativeQuery(querSql);quer.setParameter(1, uid);quer.setParameter(2, uid);removeList = quer.getResultList();logger.error("\n\n\n-------------------------不由他审批数据为:" + removeList.size());} catch (Exception e) {logger.error("", "判断是否领导时异常", e.getMessage());} finally {if (null != em) {em.close();}}}

3.解决:

只要解决了内层事物的报错就自然 OK了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。