Я получаю одно исключение Hibernate из многих дней, и я не могу его решить. Может быть, кто-то может мне помочь?
У меня есть 3 спящих объекта. (КаинИнка, Пвв, Пвт).
kainInka-> pvv (один ко многим)
pvv-> kainInka (много к одному)
pvv-> pvt (один ко многим)
pvt-> pvv (много к одному)
Я определил следующие методы в моих классах сущностей:
1.kainInka
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY, mappedBy = "p301KainInkaId")
@OnDelete(action = OnDeleteAction.CASCADE)
public List<TP301KainInkaPvv> getKainInkaPvvs() {
return this.kainInkaPvvs;
}
public void setKainInkaPvvs(final List<TP301KainInkaPvv> kainInkaPvvs) {
this.kainInkaPvvs = kainInkaPvvs;
}
2.PVV класс сущности:
@ManyToOne(fetch = FetchType.LAZY)
@OnDelete(action = OnDeleteAction.CASCADE)
@JoinColumn(name = "T_P301_KAIN_INKA_ID", nullable = false, foreignKey = @ForeignKey(name = "FK_PVV4T_P301_KAIN_INKA_ID"))
public TP301KainInka getP301KainInkaId() {
return p301KainInkaId;
}
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY, mappedBy = "p301KainInkaPvvId")
@OnDelete(action = OnDeleteAction.CASCADE)
public List<TP301KainInkaPvt> getKainInkaPvts() {
return this.kainInkaPvts;
}
public void setKainInkaPvts(final List<TP301KainInkaPvt> kainInkaPvts) {
this.kainInkaPvts = kainInkaPvts;
}
3.Pvt класс сущности:
@ManyToOne(fetch = FetchType.LAZY)
@OnDelete(action = OnDeleteAction.CASCADE)
@JoinColumn(name = "T_P301_KAIN_INKA_PVV_ID", nullable = false, foreignKey = @ForeignKey(name = "FK_PVT4KAIN_INKA_PVV_ID"))
public TP301KainInkaPvv getP301KainInkaPvvId() {
return p301KainInkaPvvId;
}
public void setP301KainInkaPvvId(TP301KainInkaPvv p301KainInkaPvvId) {
this.p301KainInkaPvvId = p301KainInkaPvvId;
}
Первый раз, когда постоянный метод работает идеально.
Проблема в методе MERGE (kainInkaDao.merge (kainInkaObj);). Я хочу добавить новые объекты pvv в мой существующий объект kainInka и чтобы новые объекты pvv имели новые объекты pvt. Я вызываю метод слияния для родительского (kaininka) объекта. Так что я думаю, что это должно добавить новые записи в базе данных, верно?
Однако оно выдает исключение: Свойство not-null ссылается на временное значение - временный экземпляр должен быть сохранен перед текущей операцией: pvv.kainInkaId-> kainInka
Я что-то делаю не так или упускаю некоторые важные моменты?
Заранее большое спасибо !!