hibernate错误:object references an unsaved transient instance - save the transient instance
2011-07-02 22:41
519 查看
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.hb.model.Log at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:243) at org.hibernate.type.EntityType.getIdentifier(EntityType.java:456) at org.hibernate.type.ManyToOneType.nullSafeSet(ManyToOneType.java:121) at org.hibernate.persister.collection.AbstractCollectionPersister.writeElement(AbstractCollectionPersister.java:815) at org.hibernate.persister.collection.AbstractCollectionPersister.recreate(AbstractCollectionPersister.java:1203) at org.hibernate.action.CollectionRecreateAction.execute(CollectionRecreateAction.java:58) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:188) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383) at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:133) at com.hb.dao.impl.UserDaoImpl.add(UserDaoImpl.java:34) at com.hb.service.impl.UserServiceImpl.add(UserServiceImpl.java:20) at com.hb.service.impl.TestUserServiceImpl.add(TestUserServiceImpl.java:32) 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:597) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:274) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:48) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:242) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:58) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:240) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:48) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:233) at org.junit.runners.ParentRunner.run(ParentRunner.java:303) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)这个错误是由于在@OneToMany里面的cascade默认是lazy,但是在数据库里保存数据的时候,没有手动保存many的一方,就会出错,应该先保存,many的一方,才能保存one的一方,如果把cascade设置成为all。这样就不会有问题了。
出现这个错误的原因是在保存该对象前,发现该对象包含有其他空的对象。
相关文章推荐
- Hibernate 异常:object references an unsaved transient instance - save the transient instance before fl
- Hibernate 异常:object references an unsaved transient instance - save the transient instance before flushing
- hibernate 对象状态异常:object references an unsaved transient instance - save the transient instance befor
- hibernate 对象状态异常:object references an unsaved transient instance - save the transient instance before flushing
- hibernate 对象状态异常:object references an unsaved transient instance - save the transient instance before flushing
- Hibernate中的级联策略和object references an unsaved transient instance - save the transient instance before
- hibernate 对象状态异常:object references an unsaved transient instance - save the transient instance befor
- ManyToOne单向配置(错误:object references an unsaved transient instance - save the transient instance befor
- Hibernate 异常:object references an unsaved transient instance - save the transient instance before fl
- 解决spring整合hibernate中用junit4测试,报错object references an unsaved transient instance - save the transient
- org.hibernate.TransientObjectException: object references an unsaved transient instance - save the t
- 问题:object references an unsaved transient instance - save the transient instance before flushing
- object references an unsaved transient instance - save the transient instance be
- object references an unsaved transient instance - save the transient instance before flushing
- object references an unsaved transient instance - save the transient instance before flushing
- 多对一存储顺序以及问题object references an unsaved transient instance - save the transient instance。。。
- object references an unsaved transient instance - save the transient instance before flushing
- object references an unsaved transient instance - save the transient instance before flushing:
- object references an unsaved transient instance - save the transient instance before flushing
- object references an unsaved transient instance - save the transient instance before flushing