【发布时间】:2023-10-20 14:56:01
【问题描述】:
我有从Bp 到BpHistorisiert 的惰性1:n 关系。
要加载一个Bp,包括相关的BpHistorisiert id 做
Bp bp= entityManager.find(Bp.class, anId);
bp.getBpHistorisiertList();
这工作正常,对getBpHistorisiertList() 的调用会按预期加载n 端惰性。但是,当 bp 分离时,bp 中的 bpHistorisiert 列表会显式重置为 null。我可以在调试器中看到,这是由 OpenJPA EntityManager 的分离功能明确完成的。
所以我的问题是:当我使用分离实体时,如何加载惰性关系并保留值?
血压
@Entity
@Table(name = "BP", schema = "INFOP_STAMMDATEN")
public class Bp extends BaseEntity implements EntityId, Serializable {
/** technische ID */
@Id
@Column(name = ID)
private Long id;
@Valid
@OneToMany(mappedBy = "bp", orphanRemoval = false, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<BpHistorisiert> bpHistorisiertList = new ArrayList<>();
}
BpHistorisiert
@Entity
@Table(name = "BP_HISTORISIERT", schema = "INFOP_STAMMDATEN")
public class BpHistorisiert implements EntityId, GueltigkeitOwner, AbkuerzungOwner, Serializable {
@Id
@Column(name = ID)
private Long id;
@NotNull
@ManyToOne
@JoinColumn(name = BP_ID)
@ForeignKey
private Bp bp;
}
【问题讨论】: