我想做一个"多对多"jpa映射。
我有一个名为"Account":
的表@ManyToMany(fetch = FetchType.LAZY,
cascade = {
CascadeType.PERSIST,
CascadeType.MERGE
})
@JoinTable(name = "account_user",
joinColumns = { @JoinColumn(name = "account_id") },
inverseJoinColumns = { @JoinColumn(name = "user_id") })
private Set<User> users = new HashSet<>();
我有一个名为"User":
的表@ManyToMany(fetch = FetchType.LAZY,
cascade = {
CascadeType.PERSIST,
CascadeType.MERGE
},
mappedBy = "user")
@JsonIgnore
private Set<Account> accounts = new HashSet<>();
我得到以下错误:
由:org.hibernate.AnnotationException: mappedBy引用一个未知的目标实体属性:com.bank.account.model.Account.user
join "多对多"名为accountuser的表;应该是由映射创建的。
任何帮助或提示将非常感激!
MappedBy必须引用目标类中的属性名。在您的示例中,它是users而不是user。
@ManyToMany(fetch = FetchType.LAZY,
cascade = {
CascadeType.PERSIST,
CascadeType.MERGE
},
mappedBy = "users")
@JsonIgnore
private Set<Account> accounts = new HashSet<>();