我有一个关于javaEE持久性的奇怪案例。
以下代码不起作用,但据我所知,它应该:
父母的:
private List<GyOBHatarozat> hatarozatok;
@OneToMany(
mappedBy = "orokbefGyermek",
cascade = CascadeType.ALL,
orphanRemoval = true)
public List<GyOBHatarozat> getHatarozatok() {
return hatarozatok;
}
public void setHatarozatok(List<GyOBHatarozat> hatarozatok) {
this.hatarozatok = hatarozatok;
}
在孩子身上:
//no annotation
private GyGyermek orokbefGyermek;
@ManyToOne(optional = false)
@JoinColumn(name = "OROKBEF_GYERMEK_ID")
public GyGyermek getOrokbefGyermek() {
return orokbefGyermek;
}
以下是适用的代码:
父母的:
private List<GyOBHatarozat> hatarozatok;
@OneToMany(
mappedBy = "orokbefGyermek",
cascade = CascadeType.ALL,
orphanRemoval = true)
public List<GyOBHatarozat> getHatarozatok() {
return hatarozatok;
}
public void setHatarozatok(List<GyOBHatarozat> hatarozatok) {
this.hatarozatok = hatarozatok;
}
在孩子身上:
@ManyToOne
private GyGyermek orokbefGyermek;
@ManyToOne(optional = false)
@JoinColumn(name = "OROKBEF_GYERMEK_ID")
public GyGyermek getOrokbefGyermek() {
return orokbefGyermek;
}
如果我将所有注释移动到字段:不起作用,如果我将所有注释移动到getter,则不起作用。如果我在getter上删除ManyToOne注释,但将其保留在字段上,则不起作用。
有人可以解释JPA注释的这种奇怪行为吗?我找不到任何有用的线索。