是否可以将 @JoinColumn 和 @Column 用于 JPA 中的同一字段,从而启用两者的更新?
假设我有一个这样的实体:
@Entity
public class Person{
@JoinColumn(name = "address_id", referencedColumnName = "id")
@ManyToOne
private Address address;
// getters and setters
}
假设 Address 对象已经存在 - 创建此对象时,我需要在持久化 Person 之前从数据库中获取地址。这是我在整个应用程序中当前的设计,但它可能会导致性能问题。是否可以通过仅使用 ID 添加持久化的可能性,同时保持与真实对象持久化的可能性(因为不必在其他地方更改大量代码)?像这样的东西
@Entity
public class Person{
@JoinColumn(name = "address_id", referencedColumnName = "id")
@ManyToOne
private Address address;
@Column(name="address_id")
private Integer addressId;
// getters and setters
}
em.persist(new Person(1));
em.persist(new Person(getAddress(1)));
是否可以注释以允许这两个持久行?我目前的信念是其中一个领域需要有insertable = false