我有以下实体类 Kunde ,它与 Verlauf
具有OneToMany关系@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(referencedColumnName = "_id", name = "_id_verlauf")
private List<Verlauf> verlauf = new ArrayList<Verlauf>();
我试图坚持一些Verlauf,但我得到了错误 无法添加或更新子行:外键约束失败
这就是我的表现方式:
@EJB
private KundeLadenLocal kunden;
private void fuegeZahlZuKundenKontoHinzu() {
try {
Kunden k = loginBean.getAktuellerKunde();
Verlauf verlauf = new Verlauf();
verlauf.set_id_kunde(k.get_id());
verlauf.setDatumDerAbfrage(new Date());
verlauf.setSuchbegriff(suchfeld);
kunden.VerlaufAnlegen(verlauf);
k.getVerlauf().add(verlauf);
kunden.kundeUpdate(k);
} catch (Exception e) {
e.printStackTrace();
}
}
会话Bean:
@Override
public void VerlaufAnlegen(Verlauf verlauf) {
em.persist(verlauf);
}
答案 0 :(得分:0)
我看不到你完整的实体代码,但我看到的让我觉得你是以错误的方式使用jpa关系。尝试以我在下面发布的方式更改您的实体代码。另外一个改进是考虑在实体级别上使用entity graphs个急切加载的instad,并阅读有关java代码约定的内容。
Kunde
可以将Verlauf
对象直接传递给verlauf.setKunde(kunde);
ojbect:
<a href="http://somepage.com/somepage">Click me</a>