У нас есть суперкласс для всех сущностей, называемый Heartcore
с @MappedSuperclass
.
@Id
private String id;
@Column(nullable = false)
@NonNull
private String uuid;
@NonNull
@Column(nullable = false)
private String kanton;
// specific Setter
public void setKanton(String kanton) {
if (kanton != null) {
id = uuid + "_" + kanton;
}
this.kanton = kanton;
}
public void setUuid(String uuid) {
if (kanton != null) {
id = uuid + "_" + kanton;
}
this.uuid = uuid;
}
У меня есть следующее однонаправленное отношение один к одному :
Дети-Entity
class OtoUniChild extends Heartcore {
@Id
private String id;
@OneToOne
@MapsId
private OtoUniParent otoUniParent;
public void setOtoUniParent(OtoUniParent otoUniParent) {
if (otoUniParent != null) {
if (StringUtils.isNoneBlank(otoUniParent.getUuid(), otoUniParent.getKanton())) {
this.otoUniParent = otoUniParent;
setUuid(otoUniParent.getUuid());
setKanton(otoUniParent.getKanton());
return;
}
throw new InvalidObjectException("Es wurde ein invalides Objekt übergeben!");
}
this.otoUniParent = null;
}
Когда я сохраняю родителя и ребенка, а затем пытаюсь получить ребенка из дочернего хранилища с помощью findById(149727fd-b0ce-4069-bcd9-d67fdbe69021_SG)
Я только что получил ошибку "org.springframework.orm.jpa.JpaSystemException: identifier of an instance of x.data.OtoUniChild was altered from 149727fd-b0ce-4069-bcd9-d67fdbe69021_SG to null;"
. Я не знаю, как это может произойти!
* Spring Boot v.1.5.8.RELEASE