簡體   English   中英

休眠:使用外鍵插入數據

[英]Hibernate: insert data with foreign key

我的數據庫中有以下兩個表:

日歷(id,名稱,user_id)

用戶(ID,名稱,...)

每個日歷由一個用戶擁有,每個用戶可以有多個日歷。 因此,從日歷到用戶之間存在多對一的關系。 現在,我想在日歷表中插入一組數據,日歷實體如下所示:

@Entity
@Table(name = "calendar")
public class Calendar {

    @Id 
    @GeneratedValue(generator = "uuid2")
    @GenericGenerator(name = "uuid2", strategy = "uuid2")
    @Column(name = "id", columnDefinition = "BINARY(16)")
    private UUID id;

    @Column(name = "name")
    private String name;

    @ManyToOne
    @JoinColumn(name = "owner", referencedColumnName = "id")
    private User owner;
    ...
}

但是,當我插入數據集時,我確實知道所有者的ID,但是沒有相應的User對象。 我是否必須檢索User對象,將其設置為owner ,然后再插入數據集?

這對我來說聽起來有點不方便,是否有一種方法可以使用User ID插入數據集,因為它會存儲在數據庫中,而不是使用User對象?

您可以獲得具有給定所有者ID的User代理實例(這是廉價的操作)。 然后將此實例用作所有者值:

User dummy = hibernateTemplate.load(User.class, ID); //entityManager.getReference or session.load should do the trick too
calendar.setOwner(dummy);
hibernateTemplate.save(calendar)

只需在您的Calendar一個新User

Calendar c = new Calendar();
c.setOwner(new User(id));

暫無
暫無

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

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