У меня ленивое отношение 1: n от Bp
до BpHistorisiert
.
Чтобы загрузить Bp
, включая BpHistorisiert
id do
Bp bp= entityManager.find(Bp.class, anId);
bp.getBpHistorisiertList();
Это отлично работает, вызов getBpHistorisiertList()
загружает n-сторону лениво, как и ожидалось. Однако, когда bp отсоединяется, список bpHistorisiert в bp явно сбрасывается на null
. В отладчике я вижу, что это явно выполняется функцией отсоединения OpenJPA EntityManager
.
Итак, мой вопрос: как загружать ленивые отношения и сохранять значения, когда я работаю с отсоединенными сущностями?
Bp
@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;
}