hibernate解决常用 hibernate.TransientObjectException解决方案

hibernate.TransientObjectException解决方案――简介

学习hibernate映射的时候遇到如下异常:org.hibernate.TransientObjectException: object references an unsaved transient instance,最后排查出原因是因为,对象在new后,未能转换为持久态,我们在配置的时候将其变为持久态即可。下边详细说明

hibernate.TransientObjectException解决方案――工具/原料

hibernate映射

hibernate.TransientObjectException解决方案――TransientObjectException异常详细:

hibernate.TransientObjectException解决方案 1、

org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.gis520.model.People

at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:242)

at org.hibernate.type.EntityType.getIdentifier(EntityType.java:430)

at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:265)

at org.hibernate.type.TypeFactory.findDirty(TypeFactory.java:619)

at org.hibernate.persister.entity.AbstractEntityPersister.findDirty(AbstractEntityPersister.java:3141)

at org.hibernate.event.def.DefaultFlushEntityEventListener.dirtyCheck(DefaultFlushEntityEventListener.java:501)

at org.hibernate.event.def.DefaultFlushEntityEventListener.isUpdateNecessary(DefaultFlushEntityEventListener.java:227)

at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:150)

at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)

at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)

at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:49)

at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028)

at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:366)

at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)

at com.gis520.test.CreateTableTest.testInsert(CreateTableTest.java:36)

hibernate解决常用 hibernate.TransientObjectException解决方案

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

……

hibernate.TransientObjectException解决方案――异常解决方法:

hibernate.TransientObjectException解决方案 1、

首先,查看<many-to-one>标签下是否添加了级联属性cascade,如果没有就添加,值为save-update,persist,如图


hibernate.TransientObjectException解决方案 2、

然后测试,从新运行程序,没有报错,证明已经成功


hibernate.TransientObjectException解决方案 3、

查看sql输出语句和log4j信息。

Hibernate: insert into People (pname, phone) values (?, ?)

Hibernate: insert into Emp (ename, job, sal, pid) values (?, ?, ?, ?)

两个表已经创建并且都执行的持久化操作。

hibernate.TransientObjectException解决方案_transient


hibernate.TransientObjectException解决方案 4、

数据库浏览,可见外键PID。异常成功解决。

  

爱华网本文地址 » http://www.aihuau.com/a/8104060103/167269.html

更多阅读

2015谷歌无法访问,最新终极解决方案 终极定制学习解决方案

2015谷歌无法访问,最新终极解决方案——简介谷歌接二连三被屏蔽,2014年5月被封锁,10月再次被封锁,12月Gmail又被封锁,2015年1月下旬再次被封锁,额,我都服了,不多说,往下看:2015谷歌无法访问,最新终极解决方案——工具/原料博软G搜索(一款软件,自

vs2013解决方案资源管理器怎样靠左 vs2015解决资源管理器

vs2013解决方案资源管理器怎样靠左——简介用着 vs2013 编写代码,解决方案资源管理器一直是在左边的,有天突然跑到另一边去了,而且 ,自己拖来拖去怎么也拖不好,这该怎么办呢?vs2013解决方案资源管理器怎样靠左——工具/原料vs2013vs2013

Apache无法启动解决方案 win10 apache无法启动

Apache无法启动解决方案——简介Apache服务器无法使用原因Apache无法启动解决方案——工具/原料 原因一:80端口占用例如IIS,另外就是迅雷。我的apache服务器就是被迅雷害得无法启用!原因二:软件冲突装了某些软件会使apache无法启动如D

建行企业网银登陆不上解决方案 建行企业网银登陆密码

建行企业网银登陆不上解决方案——简介建行企业网银能给会计工作带来极大的方便,但有时会遇到登陆不上的情况,去营业厅咨询可能人家很忙,在网上咨询客服可能浪费时间,以下是我的解决经验,其实跟个人网银安装一样简单。建行企业网银登陆

声明:《hibernate解决常用 hibernate.TransientObjectException解决方案》为网友尐腳茚分享!如侵犯到您的合法权益请联系我们删除