浏览 2301 次
|
锁定老贴子 主题:关于主子表插入问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2006-09-04
这个问题困扰我一天了.也没有被解决掉.很是郁闷.看看哪位仁兄帮忙看一下啊.
我用的是 mysql5.1 hibernate3.1.3 [quote] 2006-09-04 15:13:20,546 WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 1452, SQLState: 23000 2006-09-04 15:13:20,546 ERROR org.hibernate.util.JDBCExceptionReporter - Cannot add or update a child row: a foreign key constraint fails (`joinset/js_function`, CONSTRAINT `FKBB647A0ED8DE531D` FOREIGN KEY (`id`) REFERENCES `js_module` (`id`)) 2006-09-04 15:13:20,562 ERROR org.hibernate.event.def.AbstractFlushingEventListener - Could not synchronize database state with session org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:202) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985) at org.springframework.orm.hibernate3.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:815) at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:366) at org.springframework.orm.hibernate3.HibernateTemplate.flush(HibernateTemplate.java:813) at com.joinset.common.hibernate.AbstractManager.flush(AbstractManager.java:90) at com.joinset.common.hibernate.AbstractManager.merge(AbstractManager.java:49) at com.joinset.console.security.dao.impl.FunctionDaoImpl.save(FunctionDaoImpl.java:16) at com.joinset.console.security.serivce.impl.FunctionManagerImpl.save(FunctionManagerImpl.java:20) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176) at $Proxy2.save(Unknown Source) at com.joinset.console.security.struts.action.FunctionAction.save(FunctionAction.java:41) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274) at com.joinset.common.struts.BaseAction.execute(BaseAction.java:95) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:75) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:535) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:790) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:709) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:572) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:644) at java.lang.Thread.run(Thread.java:595) Caused by: java.sql.BatchUpdateException: Cannot add or update a child row: a foreign key constraint fails (`joinset/js_function`, CONSTRAINT `FKBB647A0ED8DE531D` FOREIGN KEY (`id`) REFERENCES `js_module` (`id`)) at com.mysql.jdbc.ServerPreparedStatement.executeBatch(ServerPreparedStatement.java:647) at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:294) at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58) at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195) ... 70 more 2006-09-04 15:13:20,593 WARN org.apache.struts.action.RequestProcessor - Unhandled Exception thrown: class org.springframework.dao.DataIntegrityViolationException [/quote][/quote] Function.hbm.xml [code:1] <many-to-one name="module" class="com.joinset.console.security.domain.Module" cascade="none" outer-join="auto" column="module_id" not-null="true" />[/code:1] Module.hbm.xml [code:1] <set name="functions" table="js_function" lazy="true" inverse="true" cascade="all-delete-orphan" sort="unsorted" outer-join="auto" > <key column="id" > </key> <one-to-many class="com.joinset.console.security.domain.Function" /> </set>[/code:1] 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2006-09-05
难道大家都没有遇到过这个问题吗?
|
|
| 返回顶楼 | |
|
时间:2006-09-05
你在one方设置了inverse="true" 让many方来维护关系
可你在many方又设置了cascade="none" , 我觉得应该是这个问题 |
|
| 返回顶楼 | |
|
时间:2006-09-05
java虫 写道 你在one方设置了inverse="true" 让many方来维护关系
可你在many方又设置了cascade="none" , 我觉得应该是这个问题 我就是这样写的,也没报错。建议看看数据库。。 |
|
| 返回顶楼 | |
|
时间:2006-09-06
你是要做一对多映射吗?
两个配置文件得column不一样呀。 把你的代码贴出来 |
|
| 返回顶楼 | |
|
时间:2006-09-06
翅膀 写道 java虫 写道 你在one方设置了inverse="true" 让many方来维护关系
可你在many方又设置了cascade="none" , 我觉得应该是这个问题 我就是这样写的,也没报错。建议看看数据库。。 不好意思,是可以 。。 他的one方设置了这个cascade="all-delete-orphan" |
|
| 返回顶楼 | |
|
时间:2006-09-06
[code:1]<set>
<key column="id"> </key> </set> [/code:1] 你用many一方的id来做key的吗?让它既做主键又做外键? 那你设置的的: [code:1]<many-to-one column="module_id" />[/code:1] 是做什么用的呢? |
|
| 返回顶楼 | |
|
时间:2006-09-07
能不能把完整的代码帖出来啊?
|
|
| 返回顶楼 | |








