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了,能保存了。

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM