关于ejb3.0中级联删除的求助

yao11Pro 2006-08-21 09:16:32
我正在试着删除一个部门的时候,理应删除给部门下的所有员工啥,但我现在出现不能批量更新和添加异常,我在department中设置cascade=CascadeType.ALL

[java] Exception in thread "main" java.lang.RuntimeException: org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=97696C0A5AAD4E8/14, BranchQual=, localId=14] status=STATUS_NO_TRANSACTION; - nested throwable: (javax.persistence.EntityExistsException: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update)
[java] Caused by: org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=97696C0A5AAD4E8/14, BranchQual=, localId=14] status=STATUS_NO_TRANSACTION; - nested throwable: (javax.persistence.EntityExistsException: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update)
[java] Caused by: javax.persistence.EntityExistsException: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
[java] at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:555)
[java] at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:484)
[java] at org.jboss.tm.TransactionImpl.doBeforeCompletion(TransactionImpl.java:1491)
[java] at org.jboss.tm.TransactionImpl.beforePrepare(TransactionImpl.java:1110)
[java] at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:324)
[java] at org.jboss.tm.TxManager.commit(TxManager.java:240)
[java] at org.jboss.aspects.tx.TxPolicy.endTransaction(TxPolicy.java:175)
[java] at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:87)
[java] at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:197)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
[java] at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
[java] at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
[java] at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
[java] at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
[java] at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
[java] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
[java] at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:225)
[java] at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106)
[java] at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
[java] at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:828)
[java] at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:681)
[java] at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:358)
[java] at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:398)
[java] at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:239)
[java] Caused by: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
[java] at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
[java] at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
[java] at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:249)
[java] at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
[java] at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:144)
[java] at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297)
[java] at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
[java] at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:993)
[java] at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:340)
[java] at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:475)
[java] ... 26 more
[java] Caused by: java.sql.BatchUpdateException: null, message from server: "Cannot delete or update a parent row: a foreign key constraint fails (`yao/userinfo`, CONSTRAINT `userinfo_ibfk_1` FOREIGN KEY (`dpid`) REFERENCES `department` (`Id`))"
[java] at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1404)
[java] at org.jboss.resource.adapter.jdbc.WrappedStatement.executeBatch(WrappedStatement.java:517)
[java] at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
[java] at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
[java] ... 33 more
[java] Java Result: 1
...全文
38 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,100

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧