我的数据库中有以下两个表:
日历(id,name,user_id)
用户(id,name,...)
每个日历由一个用户拥有,每个用户可以拥有多个日历。因此,从日历到用户之间存在多对一关系。现在我想在我的Calendar表中插入一组数据,我的Calendar Entity如下所示:
@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
对象? / p>
答案 0 :(得分:1)
您可以获取具有给定所有者ID的用户代理实例(这是便宜的操作)。然后将此实例用作所有者值:
User dummy = hibernateTemplate.load(User.class, ID); //entityManager.getReference or session.load should do the trick too
calendar.setOwner(dummy);
hibernateTemplate.save(calendar)
答案 1 :(得分:1)
只需将新的User
添加到Calendar
:
Calendar c = new Calendar();
c.setOwner(new User(id));