hibernate 對象狀態異常:object references an unsaved transient instance - save the transient instance before flushing


由於要保持的對象持有一個未持久化的對象導致,

我是MANY TO ONE 的時候,引導的那個ONE對象所有屬性都是NULL,造成這個異常。

解決辦法:配置cascade關鍵字,級聯操作。

我是用的JPA注解和Hibernate的有些不同,

JPA 中定義了四種 CASCADE 類型:

    * PERSIST:持久保存擁有方實體時,也會持久保存該實體的所有相關數據。
    * MERGE:將分離的實體重新合並到活動的持久性上下文時,也會合並該實體的所有相關數據。
    * REMOVE:刪除一個實體時,也會刪除該實體的所有相關數據。
    * ALL:以上都適用。

@ManyToOne(cascade={CascadeType.PERSIST,CascadeType.MERGE})

@JoinColumn(name = "teacher_id")

private Teacher teacher;  

解決問題。


免責聲明!

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



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