java持久性:合并失败后出现致命错误如何继续合并?

wztqucjr  于 2021-07-12  发布在  Java
关注(0)|答案(0)|浏览(309)

我试图捕捉一个损坏对象的错误,但我无法将其保留到数据库中。目标是跳过错误并继续合并其他对象。

for (Dossier dossier : dossiers) {
        try {

           dossierNew =  em.merge(dossier);

        } catch (Exception ex) {

            return dossierNew;

        }

}
这是我无法避免的预期错误:
12:51:37325调试[org.hibernate.engine.jdbc.spi.sqlexceptionhelper](默认任务-4)无法执行语句[n/a]:com.ibm.db2.jcc.am.sqlintegrityconstraintviolationexception:db2 sql错误:sqlcode=-407,sqlstate=23502,sqlerrmc=tbspaceid=7,tableid=5,colno=18,driver=4.24.92位于com.ibm.db2.jcc.am.b6.a(b6。java:806)在com.ibm.db2.jcc.am.b6.a(b6。java:66)在com.ibm.db2.jcc.am.b6.a(b6。java:140)在com.ibm.db2.jcc.am.k3.c(k3。java:2817)在com.ibm.db2.jcc.am.k3.a(k3。java:2254)在com.ibm.db2.jcc.t4.ab.r(ab。java:1631)在com.ibm.db2.jcc.t4.ab.l(ab。java:748)在com.ibm.db2.jcc.t4.ab.d(ab。java:111)在com.ibm.db2.jcc.t4.p.c(第。java:44)在com.ibm.db2.jcc.t4.av.j(av。java:162)在com.ibm.db2.jcc.am.k3.an(k3。java:2249)在com.ibm.db2.jcc.am.k4.a(k4。java:4609)在com.ibm.db2.jcc.am.k4.b(k4。java:4154)在com.ibm.db2.jcc.am.k4.be(k4。java:821)在com.ibm.db2.jcc.am.k4.executeupdate(k4。java:795)在org.jboss.jca.adapters.jdbc.wrappedpreparedstatement.executeupdate(wrappedpreparedstatement)。java:537)
但在那之后,我发现entitymanager不再为进一步的操作工作:
12:51:47917警告[org.hibernate.engine.jdbc.spi.sqlexceptionhelper](默认任务-4)sql错误:0,sqlstate:null 12:51:47917错误[org.hibernate.engine.jdbc.spi.sqlexceptionhelper](默认任务-4)ij031070:事务无法继续:状态\u标记为\u回滚12:51:47,920调试[org.hibernate.resource.jdbc.internal.logicalconnectionmanagedimpl](默认任务-4)从aftertransaction 12:51:47启动jdbc连接释放,922 debug[org.hibernate.engine.jdbc.spi.sqlexceptionhelper](默认任务-4)无法记录警告:java.sql.sqlexception:ij031070:事务无法继续:在org.jboss.jca.adapters.jdbc.wrapperdatasource.checktransactionactive(wrapperdatasource)处状态\u标记为\u回滚。java:248)
期待建议:-)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题