先是从注册页面获得数据,然后把它们保存在数据库中的两张表里(一张表不能保存注册页面所有的数据),两张表分别为TbUserinfo、TbMemberinfo,其中TbMemberinfo里有一个userId字段是要引用TbUserinfo里的,在注册功能的dao里,建立他们之间的关联关系,而且能够将从注册页面获得的数据打印出来,但是就是在保存时出了错,一直找不到是什么原因,所有想让各位帮帮忙看一下,到底是那个地方写错了!!!! 报错代码如下Hibernate: select tbmemberin_.N_USERID, tbmemberin_.N_GRADEID as N2_9_, tbmemberin_.N_TOTAL_CENT as N3_9_, tbmemberin_.V_PHOTO as V4_9_, tbmemberin_.V_SELFLABLE as V5_9_, tbmemberin_.D_BIRTHDAY as D6_9_, tbmemberin_.V_SEX as V7_9_, tbmemberin_.V_MAILBOX as V8_9_, tbmemberin_.V_ADDRESS as V9_9_, tbmemberin_.C_ID_USABLE as C10_9_, tbmemberin_.N_LOGIN_COUNT as N11_9_, tbmemberin_.N_VISIT_COUNT as N12_9_, tbmemberin_.N_USABLE_CENT as N13_9_, tbmemberin_.N_GOLD as N14_9_, tbmemberin_.D_LAST_LOGIN as D15_9_, tbmemberin_.D_REGISTER_TIME as D16_9_ from SCOTT.TB_MEMBERINFO tbmemberin_ where tbmemberin_.N_USERID=?
Hibernate: insert into SCOTT.TB_MEMBERINFO (N_GRADEID, N_TOTAL_CENT, V_PHOTO, V_SELFLABLE, D_BIRTHDAY, V_SEX, V_MAILBOX, V_ADDRESS, C_ID_USABLE, N_LOGIN_COUNT, N_VISIT_COUNT, N_USABLE_CENT, N_GOLD, D_LAST_LOGIN, D_REGISTER_TIME, N_USERID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
09 09-12-04 10:04:34,546 [org.hibernate.util.JDBCExceptionReporter]-[WARN] SQL Error: 2291, SQLState: 23000
09 09-12-04 10:04:34,546 [org.hibernate.util.JDBCExceptionReporter]-[ERROR] ORA-02291: 违反完整约束条件 (SCOTT.FK4CAC18B935B61226) - 未找到父项关键字09 09-12-04 10:04:34,546 [org.hibernate.util.JDBCExceptionReporter]-[WARN] SQL Error: 2291, SQLState: 23000
09 09-12-04 10:04:34,546 [org.hibernate.util.JDBCExceptionReporter]-[ERROR] ORA-02291: 违反完整约束条件 (SCOTT.FK4CAC18B935B61226) - 未找到父项关键字09 09-12-04 10:04:34,546 [org.hibernate.event.def.AbstractFlushingEventListener]-[ERROR] 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:253)
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: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 org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:575)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:662)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:632)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:314)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy1.registerUser(Unknown Source)
at cn.com.video.action.UserAction.registerUser(UserAction.java:141)
Hibernate: insert into SCOTT.TB_MEMBERINFO (N_GRADEID, N_TOTAL_CENT, V_PHOTO, V_SELFLABLE, D_BIRTHDAY, V_SEX, V_MAILBOX, V_ADDRESS, C_ID_USABLE, N_LOGIN_COUNT, N_VISIT_COUNT, N_USABLE_CENT, N_GOLD, D_LAST_LOGIN, D_REGISTER_TIME, N_USERID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
09 09-12-04 10:04:34,546 [org.hibernate.util.JDBCExceptionReporter]-[WARN] SQL Error: 2291, SQLState: 23000
09 09-12-04 10:04:34,546 [org.hibernate.util.JDBCExceptionReporter]-[ERROR] ORA-02291: 违反完整约束条件 (SCOTT.FK4CAC18B935B61226) - 未找到父项关键字09 09-12-04 10:04:34,546 [org.hibernate.util.JDBCExceptionReporter]-[WARN] SQL Error: 2291, SQLState: 23000
09 09-12-04 10:04:34,546 [org.hibernate.util.JDBCExceptionReporter]-[ERROR] ORA-02291: 违反完整约束条件 (SCOTT.FK4CAC18B935B61226) - 未找到父项关键字09 09-12-04 10:04:34,546 [org.hibernate.event.def.AbstractFlushingEventListener]-[ERROR] 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:253)
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: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 org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:575)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:662)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:632)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:314)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy1.registerUser(Unknown Source)
at cn.com.video.action.UserAction.registerUser(UserAction.java:141)
解决方案 »
- Filter为什么会在一次请求执行doFilter()多次呢?
- SpringMVC+JPA产生异常求解
- 求助:SSH jquery json 登陆 getHibernateTemplate().find异常
- 帮忙看看
- EJB3 PK Spring 谁主沉浮?未来一年,是决胜之年。
- 请问如何下载开源框架的源码?
- java struts2问题,在线等答案,知道的帮帮忙,谢谢
- 请大家帮忙看看我用java调用SQL Server存储过程的代码有什么问题
- 一个logic:iterate嵌套使用的问题,早上上班弄到现在没搞定,希望在吃饭前能成功!
- SOS!快来救我!
- 求Java分页的控件或者代码
- ssh整合的问题
先保存父表,后保存子表。
System.out.println("UserDao registerUser.....");
TbUserinfo tbUserinfo = (TbUserinfo)userinfo;
TbMemberinfo tbMemberinfos = (TbMemberinfo)memberinfo;
System.out.println("username:" + tbUserinfo.getVUsername());
System.out.println("password:" + tbUserinfo.getVPassword());
System.out.println("mail:" + tbMemberinfos.getVMailbox());
System.out.println("address:" + tbMemberinfos.getVAddress());
System.out.println("sex:" + tbMemberinfos.getVSex());
final Set memberInfo = new HashSet(0);
memberInfo.add(tbMemberinfos);
try{
tbUserinfo.setTbMemberinfos(memberInfo);
tbMemberinfos.setTbUserinfo(tbUserinfo);
hibernateTemplate.save(tbUserinfo);
hibernateTemplate.save(tbMemberinfos);
} catch (Exception e){
return 0;
} return 1;
}
Hibernate: select tbmemberin_.N_USERID, tbmemberin_.N_GRADEID as N2_9_, tbmemberin_.N_TOTAL_CENT as N3_9_, tbmemberin_.V_PHOTO as V4_9_, tbmemberin_.V_SELFLABLE as V5_9_, tbmemberin_.D_BIRTHDAY as D6_9_, tbmemberin_.V_SEX as V7_9_, tbmemberin_.V_MAILBOX as V8_9_, tbmemberin_.V_ADDRESS as V9_9_, tbmemberin_.C_ID_USABLE as C10_9_, tbmemberin_.N_LOGIN_COUNT as N11_9_, tbmemberin_.N_VISIT_COUNT as N12_9_, tbmemberin_.N_USABLE_CENT as N13_9_, tbmemberin_.N_GOLD as N14_9_, tbmemberin_.D_LAST_LOGIN as D15_9_, tbmemberin_.D_REGISTER_TIME as D16_9_ from SCOTT.TB_MEMBERINFO tbmemberin_ where tbmemberin_.N_USERID=?
Hibernate: insert into SCOTT.TB_USERINFO (V_USERNAME, V_PASSWORD, N_FLAG, N_USERID) values (?, ?, ?, ?)
Hibernate: insert into SCOTT.TB_MEMBERINFO (N_GRADEID, N_TOTAL_CENT, V_PHOTO, V_SELFLABLE, D_BIRTHDAY, V_SEX, V_MAILBOX, V_ADDRESS, C_ID_USABLE, N_LOGIN_COUNT, N_VISIT_COUNT, N_USABLE_CENT, N_GOLD, D_LAST_LOGIN, D_REGISTER_TIME, N_USERID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
09 09-12-04 10:29:48,015 [org.hibernate.util.JDBCExceptionReporter]-[WARN] SQL Error: 2291, SQLState: 23000
09 09-12-04 10:29:48,015 [org.hibernate.util.JDBCExceptionReporter]-[ERROR] ORA-02291: 违反完整约束条件 (SCOTT.FK4CAC18B935B61226) - 未找到父项关键字09 09-12-04 10:29:48,015 [org.hibernate.util.JDBCExceptionReporter]-[WARN] SQL Error: 2291, SQLState: 23000
09 09-12-04 10:29:48,015 [org.hibernate.util.JDBCExceptionReporter]-[ERROR] ORA-02291: 违反完整约束条件 (SCOTT.FK4CAC18B935B61226) - 未找到父项关键字09 09-12-04 10:29:48,015 [org.hibernate.event.def.AbstractFlushingEventListener]-[ERROR] 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:253)
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: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 org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:575)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:662)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:632)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:314)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy1.registerUser(Unknown Source)
at cn.com.video.action.UserAction.registerUser(UserAction.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
你试试 改 cascade
或者你 父类表的关系是不是配置文件写错了啊
<column name="N_USERID" precision="10" scale="0" />
<generator class="assigned"/>
</id>
<many-to-one name="tbUserinfo" class="cn.com.video.model.TbUserinfo" update="false" insert="false" fetch="select">
<column name="N_USERID" precision="10" scale="0" not-null="true" unique="true" />
</many-to-one>
是哪个SAVE出问题 在去从这个SAVE里找问题 你这样谁知道是你DAO方法有问题还是你本来SAVE的时候出了问题呢