[英]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.