У меня есть отношения @OneToMany
. У родительской сущности также есть временные поля. Я хочу сохранить эти временные поля после сохранения или обновления. Также я хочу, чтобы спящий режим был удален для дочерних объектов. Если я использую entityManager.merge, hibernate orphan удаляет дочерние объекты, но также не сохраняет временные поля. Если я использую session.saveOrUpdate, он сохраняет временные поля, но не удаляет сиротские.
Примеры объектов;
@Table(name = "parent_entity")
@Entity(name = "ParentEntity")
public class ParentEntity extends PersistentEntity {
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "inner_entity")
private InnerEntity innerEntity = new InnerEntity();
@Transient
private SomePojo transientField;
public InnerEntity getInnerEntity() {
return innerEntity;
}
public void setInnerEntity(InnerEntity innerEntity) {
this.innerEntity = innerEntity;
}
}
@Table(name = "parent_entity")
@Entity(name = "ParentEntity")
public class ParentEntity extends PersistentEntity {
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "inner_entity")
private InnerEntity innerEntity = new InnerEntity();
public InnerEntity getInnerEntity() {
return innerEntity;
}
public void setInnerEntity(InnerEntity innerEntity) {
this.innerEntity = innerEntity;
}
}
@Table(name = "child_entity")
@Entity(name = "ChildEntity")
public class ChildEntity extends PersistentEntity {
@ManyToOne
@JoinColumn(name = "inner_entity")
private InnerEntity innerEntity;
@Column(name = "child_value")
private String childValue;
public InnerEntity getInnerEntity() {
return innerEntity;
}
public void setInnerEntity(InnerEntity innerEntity) {
this.innerEntity = innerEntity;
}
public String getChildValue() {
return childValue;
}
public void setChildValue(String childValue) {
this.childValue = childValue;
}
}
Как я уже сказал, я хочу сохранить и обновить родительские и Я хочу, чтобы в спящем режиме сохранялись временные поля и выполнялось удаление сирот.
Я пробовал entityManager.merge и session.saveOrUpdate, но ни один из них не делает то, что я хочу.
Спасибо.