object references an unsaved transient instance异常

Posted 涤新云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了object references an unsaved transient instance异常相关的知识,希望对你有一定的参考价值。

【异常提示】

TransientObjectException: object references an unsaved transient instance -save the transient instance before flushing: com.jspxcms.core.domain.ScTeam

 

 

【网上参考资料】

 

【参考资料二】

标题:   object references an unsaved transient instance - save the transient instance before flushing

 

 

异常1:not-null property references a null or transient value
解决方法:将“一对多”关系中的“一”方,not-null设置为false
(参考资料:http://www.thearcmind.com/confluence/pages/viewpage.action?pageId=212)

异常2:org.hibernate.TransientObjectException: object references an unsaved transient instance
解决方法:cascade="save-update,persist"
(参考资料:http://www.laliluna.de/254.html

异常3:org.hibernate.QueryException: could not resolve property
解决方法:"from Category category where category.userID = :userID"修改为"from Category category whereuserID = :userID"或者"from Category category where category.user.id = :userID"
(参考资料:http://www.laliluna.de/277.html)

异常4:could not initialize proxy - the owning Session was closed
解决方法:设置lazy为false
(参考资料:http://forum.springframework.org/showthread.PHP?t=27993)

 

异常2我在应用中碰到了这样的问题:

有三个表:userInfo   deptmentInfo   role

userInfo 与deptmentInfo为many to one

userInfo 与role为many to one

下面为保存UserInfo对象时的代码:

    DeptmentInfo dept = new DeptmentInfo();
    dept.setDeptName(deptName);

    Role role = new Role();
    role.setRoleName(roleName);

    UserInfo user = new UserInfo();
    user.setUserName(userName);
    user.setUserSex(userSex);
    user.setDuty(duty);
    user.setPhone(phone);
    user.setMobileNum(mobileNum);
    user.setEmail(email);
    user.setQq(qq);
    user.setMsn(msn);
    user.setAdress(adress);
    user.setDeptmentInfo(dept);
    user.setRole(role);

    dao.save(user);

 

执行时有错:org.hibernate.TransientObjectException: object references an unsaved transient instance

 

于是改了UserInfo.hbm.xml的一些地方

如下:

<many-to-one name="role" class="com.oa.domain.Role"
   cascade="save-update,persist" fetch="select">
    <column name="ROLE_ID" precision="22" scale="0" />
   </many-to-one>
   <many-to-one name="deptmentInfo"
    class="com.oa.domain.DeptmentInfo" cascade="save-update,persist"
    fetch="select">
    <column name="DEPT_ID" precision="22" scale="0" />
   </many-to-one>

 

加了上面红色部分的,就OK了,能保存了。


以上是关于object references an unsaved transient instance异常的主要内容,如果未能解决你的问题,请参考以下文章

object references an unsaved transient instance异常

kali 2016:mount ntfs 分区只读 --Falling back to read-only mount because the NTFS partition is in an unsa

.NetCore 3.1 WebAPI 运行时报错Object reference not set to an?

关于Unity3D的错误:NullReferenceException: Object reference not set to an instance of an object 的解答

You may experience an access violation when you access an STL object through a pointer or reference

org.springframework.dao.InvalidDataAccessApiUsageException: object references an unsaved transient i