错误:hibernate.AnnotationException:mappedBy通过引用未知的目标实体属性
我知道为什么会出现错误,但是我盯着它看的时间越长,我就越找不到它:)。我只需要另一个人的视角。
然后我具有用于用户,公司和交易的实体。
关系如下所示:
交易:
@ManyToOne
@JoinColumn(name = "userId")
User user;
@ManyToOne
@JoinColumn(name = "companyId")
Company company;
公司
@JsonIgnore
@OneToMany(mappedBy = "transaction")
List<Transaction> transactions;
用户
@JsonIgnore
@OneToMany(mappedBy = "transaction")
List<Transaction> transactions;
这是完整的错误:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: top100.models.Transaction.transaction in top100.models.User.transactions
所以错误与关系有关,但我无法发现我的错误。
谢谢:)
答案 0 :(得分:1)
也许您尝试按“用户”字段进行映射。 可能您会在Understanding mappedBy annotation in Hibernate
那里看到这个问题。答案 1 :(得分:1)
公司
@JsonIgnore
@OneToMany(mappedBy = "company")
List<Transaction> transactions;
用户
@JsonIgnore
@OneToMany(mappedBy = "user")
List<Transaction> transactions;
mappedBy指的是连接到的字段的名称。 @Aleksandr Zorin提供的链接具有更多详细信息。我建议您看看:)
答案 2 :(得分:1)
应该是
公司
@JsonIgnore
@OneToMany(mappedBy = "company")
List<Transaction> transactions;
和
用户
@JsonIgnore
@OneToMany(mappedBy = "user")
List<Transaction> transactions;
在 mappedBy 属性中,您在引用表中指定应映射该字段的字段。