簡體   English   中英

Hibernate:以多對一關系保存空實體

[英]Hibernate: Saving null entity in many-to-one relationship

有一個類似的問題 ,但是我的情況與級聯定義有所不同。


嘗試使用非空SiteEntity保存任務時,一切正常。 但是,當您嘗試使用一個空SiteEntity保存一個空參數時,會出現一個空參數異常(毫無疑問)-使用虛擬SiteEntity會在SITES表中創建新行...

這是相關的代碼(省略了無關的數據):

@javax.persistence.Table(name = "TASKS")
@Entity
public class Task {

    @Id
    @GeneratedValue
    @Column(name = "ID", unique = true, nullable = false)
    private int id;

    @ManyToOne(cascade = CascadeType.ALL, fetch=FetchType.EAGER)
    @JoinColumn(name="SITEID", nullable = true)
    @NotFound(action = NotFoundAction.IGNORE)
    @ForeignKey(name = "id")
    private SiteEntity site;

}

@javax.persistence.Table(name = "SITES")
@Entity
public class SiteEntity {

    @Id
    @Column(name = "ID")
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;

}

問題是,基本上,我該如何保存具有空SiteEntity的Task-結果將0寫入任務表的SITEID列?

PS完全刪除級聯(“按原樣保存並稍后再處理站點”)並沒有改變這種情況。

感謝您的幫助!

Ondrej Bozek的想法出發 -問題是SITEID的“ NOT NULL”約束。 刪除它解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM