JPA一对多双向关联触发EclipseLink-7154异常排查求助
问题根因
你遇到的是JPA双向关联配置的大小写匹配错误:
Exception Description: The attribute [retenciones] in entity class [class komp.model.ChequePropio] has a mappedBy value of [chequepropio] which does not exist in its owning entity class [class komp.model.RetencionChp]
错误核心是mappedBy的配置值和对端实体的属性名大小写不匹配:
- 被关联的
RetencionChp类中,指向ChequePropio的属性名为驼峰格式chequePropio(P大写) - 你在
ChequePropio的@OneToMany注解中,mappedBy填的是全小写chequepropio,和实际属性名不一致
JPA的mappedBy配置是严格大小写敏感的,名称完全一致才能正确识别关联关系。
修复方案
修改ChequePropio类中retenciones属性的注解配置,把mappedBy的值改为和对端属性完全匹配的驼峰格式:
@Entity @Table(name = "chequepropio", uniqueConstraints = { @UniqueConstraint(name = "ukchequepropio", columnNames = {"idbanco", "idempresa", "idtipo", "numero"})}) public class ChequePropio implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; // 仅修改mappedBy的值为chequePropio即可 @OneToMany(fetch = FetchType.LAZY,mappedBy = "chequePropio") private List<RetencionChp> retenciones; // 其余代码无需改动 public int getId() { return id; } public void setId(int id) { this.id = id; } }
修改完成后重启应用即可解决该校验错误。
内容的提问来源于stack exchange,提问作者user5827992
相关产品推荐
相关产品推荐

