JPA映射报错:mappedBy引用未知目标实体属性求助
JPA双向关联映射错误修复
错误原因
你的报错根源是Customer实体中@OneToMany注解的mappedBy属性值配置错误。mappedBy需要指定关联实体中指向当前实体的属性名称,而非关联实体的类名或其他无关名称。
具体错误点
Customer类中addresses字段的@OneToMany(mappedBy = "address"):Address实体里指向Customer的属性是customer,不是addressCustomer类中subscriptions字段的@OneToMany(mappedBy = "subscription"):Subscription实体里指向Customer的属性是customer,不是subscription
修正后的Customer实体代码
package com.ms.example.model; import lombok.*; import javax.persistence.*; import java.time.*; import java.util.*; @Getter @Setter @NoArgsConstructor @Entity @Table(name = "customer") public class Customer { @Id @Column(name = "customer_id") private String customerId; @Column(name = "first_name") private String firstName; @Column(name = "last_name") private String lastName; @Column(name = "email_id") private String emailId; @Column(name = "phone_number") private Long phoneNumber; @Column(name = "creation_date") private LocalDate creationDate; // 修正mappedBy值为address实体中指向customer的属性名"customer" @OneToMany(mappedBy = "customer") private List<Address> addresses; // 修正mappedBy值为subscription实体中指向customer的属性名"customer" @OneToMany(mappedBy = "customer") private List<Subscription> subscriptions; }
其他实体说明
Address和Subscription实体中的@ManyToOne与@JoinColumn配置是正确的,无需修改,它们已正确指定关联的外键字段customer_id以及指向Customer的属性。
内容的提问来源于stack exchange,提问作者devCodePro
相关产品推荐
相关产品推荐

