表massage 和表teacher建立多对多关系,在java.文件中,建立一个继承 TestCase的java文件中可以正确执行Hibernate: insert into t_teacher_massage (msg_id, teacher_id) values (?, ?)建立他们之之间的关系。如下
session = HibernateSessionFactory.getSession();
tx = session.beginTransaction();
Massage msg = new Massage();
Teacher thr = new Teacher();
int msg_id = 3;
int teacher_id = 2;
msg = (Massage) session.get(Massage.class, msg_id);
thr = (Teacher) session.get(Teacher.class, teacher_id); Set teachers = msg.getTeachers();
teachers.add(thr);
msg.setTeachers(teachers); session.save(msg); session.getTransaction().commit();但是在网页上对些进行操作就不行,而且在网页操作了之后,出现了如下的异常,那么上面的方法再也不能用,只有drop database之后才可以用。
问题已经困扰几天了,希望啊个大侠解决下。Hibernate: select massage0_.msg_id as msg1_13_0_, massage0_.firname as firname13_0_, massage0_.sex as sex13_0_, massage0_.telephone as telephone13_0_, massage0_.mobel as mobel13_0_, massage0_.address as address13_0_, massage0_.schoolgrade as schoolgr7_13_0_, massage0_.studyinf as studyinf13_0_, massage0_.pay as pay13_0_, massage0_.req as req13_0_, massage0_.stu_id as stu11_13_0_, massage0_.tea_id as tea12_13_0_, massage0_.postdate as postdate13_0_, massage0_.onesubject as onesubject13_0_, massage0_.state as state13_0_, massage0_.threquire as threquire13_0_ from t_massage massage0_ where massage0_.msg_id=?
Hibernate: select teacher0_.user_id as user1_9_0_, teacher0_.username as username9_0_, teacher0_.pwd as pwd9_0_, teacher0_.rote as rote9_0_, teacher0_.ch_name as ch5_9_0_, teacher0_.email as email9_0_, teacher0_.sex as sex9_0_, teacher0_.birthday as birthday9_0_, teacher0_.nation as nation9_0_, teacher0_.province as province9_0_, teacher0_.school as school9_0_, teacher0_.subject as subject9_0_, teacher0_.exp_intr as exp13_9_0_, teacher0_.telephone as telephone9_0_, teacher0_.mobel as mobel9_0_, teacher0_.state as state9_0_, teacher0_.qq as qq9_0_, teacher0_.registertime as registe18_9_0_, teacher0_.onesubject as onesubject9_0_, teacher0_.education as education9_0_, teacher0_.postdate as postdate9_0_ from t_teacher teacher0_ where teacher0_.user_id=?
Hibernate: select teachers0_.msg_id as msg2_1_, teachers0_.teacher_id as teacher1_1_, massage1_.msg_id as msg1_13_0_, massage1_.firname as firname13_0_, massage1_.sex as sex13_0_, massage1_.telephone as telephone13_0_, massage1_.mobel as mobel13_0_, massage1_.address as address13_0_, massage1_.schoolgrade as schoolgr7_13_0_, massage1_.studyinf as studyinf13_0_, massage1_.pay as pay13_0_, massage1_.req as req13_0_, massage1_.stu_id as stu11_13_0_, massage1_.tea_id as tea12_13_0_, massage1_.postdate as postdate13_0_, massage1_.onesubject as onesubject13_0_, massage1_.state as state13_0_, massage1_.threquire as threquire13_0_ from t_teacher_massage teachers0_ left outer join t_massage massage1_ on teachers0_.teacher_id=massage1_.msg_id where teachers0_.msg_id=?
teachers.size: 0
teachers.size: 1
Hibernate: insert into t_teacher_massage (msg_id, teacher_id) values (?, ?)
10:32:10,375 WARN JDBCExceptionReporter:71 - SQL Error: 1452, SQLState: 23000
10:32:10,390 ERROR JDBCExceptionReporter:72 - Cannot add or update a child row: a foreign key constraint fails (`dbteach/t_teacher_massage`, CONSTRAINT `FK1261FC63E7CFA31C` FOREIGN KEY (`teacher_id`) REFERENCES `t_massage` (`msg_id`))
10:32:10,390 ERROR AbstractFlushingEventListener:301 - 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:249)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at com.swust.teach.manager.MsgaddManagerImpl.employ(MsgaddManagerImpl.java:151)
at com.swust.teach.actions.MsgaddAction.employ(MsgaddAction.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at com.swust.teach.actions.BaseAction.execute(BaseAction.java:21)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.BatchUpdateException: Cannot add or update a child row: a foreign key constraint fails (`dbteach/t_teacher_massage`, CONSTRAINT `FK1261FC63E7CFA31C` FOREIGN KEY (`teacher_id`) REFERENCES `t_massage` (`msg_id`))
at com.mysql.jdbc.ServerPreparedStatement.executeBatch(ServerPreparedStatement.java:648)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
... 39 more
session = HibernateSessionFactory.getSession();
tx = session.beginTransaction();
Massage msg = new Massage();
Teacher thr = new Teacher();
int msg_id = 3;
int teacher_id = 2;
msg = (Massage) session.get(Massage.class, msg_id);
thr = (Teacher) session.get(Teacher.class, teacher_id); Set teachers = msg.getTeachers();
teachers.add(thr);
msg.setTeachers(teachers); session.save(msg); session.getTransaction().commit();但是在网页上对些进行操作就不行,而且在网页操作了之后,出现了如下的异常,那么上面的方法再也不能用,只有drop database之后才可以用。
问题已经困扰几天了,希望啊个大侠解决下。Hibernate: select massage0_.msg_id as msg1_13_0_, massage0_.firname as firname13_0_, massage0_.sex as sex13_0_, massage0_.telephone as telephone13_0_, massage0_.mobel as mobel13_0_, massage0_.address as address13_0_, massage0_.schoolgrade as schoolgr7_13_0_, massage0_.studyinf as studyinf13_0_, massage0_.pay as pay13_0_, massage0_.req as req13_0_, massage0_.stu_id as stu11_13_0_, massage0_.tea_id as tea12_13_0_, massage0_.postdate as postdate13_0_, massage0_.onesubject as onesubject13_0_, massage0_.state as state13_0_, massage0_.threquire as threquire13_0_ from t_massage massage0_ where massage0_.msg_id=?
Hibernate: select teacher0_.user_id as user1_9_0_, teacher0_.username as username9_0_, teacher0_.pwd as pwd9_0_, teacher0_.rote as rote9_0_, teacher0_.ch_name as ch5_9_0_, teacher0_.email as email9_0_, teacher0_.sex as sex9_0_, teacher0_.birthday as birthday9_0_, teacher0_.nation as nation9_0_, teacher0_.province as province9_0_, teacher0_.school as school9_0_, teacher0_.subject as subject9_0_, teacher0_.exp_intr as exp13_9_0_, teacher0_.telephone as telephone9_0_, teacher0_.mobel as mobel9_0_, teacher0_.state as state9_0_, teacher0_.qq as qq9_0_, teacher0_.registertime as registe18_9_0_, teacher0_.onesubject as onesubject9_0_, teacher0_.education as education9_0_, teacher0_.postdate as postdate9_0_ from t_teacher teacher0_ where teacher0_.user_id=?
Hibernate: select teachers0_.msg_id as msg2_1_, teachers0_.teacher_id as teacher1_1_, massage1_.msg_id as msg1_13_0_, massage1_.firname as firname13_0_, massage1_.sex as sex13_0_, massage1_.telephone as telephone13_0_, massage1_.mobel as mobel13_0_, massage1_.address as address13_0_, massage1_.schoolgrade as schoolgr7_13_0_, massage1_.studyinf as studyinf13_0_, massage1_.pay as pay13_0_, massage1_.req as req13_0_, massage1_.stu_id as stu11_13_0_, massage1_.tea_id as tea12_13_0_, massage1_.postdate as postdate13_0_, massage1_.onesubject as onesubject13_0_, massage1_.state as state13_0_, massage1_.threquire as threquire13_0_ from t_teacher_massage teachers0_ left outer join t_massage massage1_ on teachers0_.teacher_id=massage1_.msg_id where teachers0_.msg_id=?
teachers.size: 0
teachers.size: 1
Hibernate: insert into t_teacher_massage (msg_id, teacher_id) values (?, ?)
10:32:10,375 WARN JDBCExceptionReporter:71 - SQL Error: 1452, SQLState: 23000
10:32:10,390 ERROR JDBCExceptionReporter:72 - Cannot add or update a child row: a foreign key constraint fails (`dbteach/t_teacher_massage`, CONSTRAINT `FK1261FC63E7CFA31C` FOREIGN KEY (`teacher_id`) REFERENCES `t_massage` (`msg_id`))
10:32:10,390 ERROR AbstractFlushingEventListener:301 - 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:249)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at com.swust.teach.manager.MsgaddManagerImpl.employ(MsgaddManagerImpl.java:151)
at com.swust.teach.actions.MsgaddAction.employ(MsgaddAction.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at com.swust.teach.actions.BaseAction.execute(BaseAction.java:21)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.BatchUpdateException: Cannot add or update a child row: a foreign key constraint fails (`dbteach/t_teacher_massage`, CONSTRAINT `FK1261FC63E7CFA31C` FOREIGN KEY (`teacher_id`) REFERENCES `t_massage` (`msg_id`))
at com.mysql.jdbc.ServerPreparedStatement.executeBatch(ServerPreparedStatement.java:648)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
... 39 more
解决方案 »
- 新手 求助。谢谢帮忙
- 哥哥们救救我吧,spring事物配置的问题,修改时事物回滚
- struts2 “No result defined for action and result input”的问题
- Hibernate 批量 添加 and 批量 删除 问题!
- weblogic7建立oracle10g连接池错误
- 那位老大!大姐有ssh整合的项目视频教材的!!
- 有关struts2验证框架的问题
- [求助]从文件中提取字符串并进行统计
- Rod Johnson说:设计一个业务对象带有远程接口、具备分布能力的应用程序,这是对OO的严重破坏。我想请教一下为什么?
- struts的下拉框啊!我总是做不好啊!帮我看看阿
- saif-spring.jar 找寻一下午了! !! 请大家帮我寻找这个jar包,多谢!!
- 在index.jsp中请求控制器(servlet)调出数据,我这样写出现了一个空指针的异常。请您指点,jsp初学者
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:249)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at com.swust.teach.manager.MsgaddManagerImpl.employ(MsgaddManagerImpl.java:151)
at com.swust.teach.actions.MsgaddAction.employ(MsgaddAction.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.BatchUpdateException: Cannot add or update a child row: a foreign key constraint fails (`dbteach/t_teacher_massage`, CONSTRAINT `FK1261FC63E7CFA31C` FOREIGN KEY (`teacher_id`) REFERENCES `t_massage` (`msg_id`))
at com.mysql.jdbc.ServerPreparedStatement.executeBatch(ServerPreparedStatement.java:648)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
... 39 more