我可能只是误解了@JoinColumns 的工作原理,但是当我重用名称属性时出现错误。但是名称属性不映射到数据库列吗?我不应该能够重复使用它吗?
我遇到错误:
Repeated column in mapping for entity: data.model.DP column: division
代码:
@Column(name = "division", nullable = false)
private String division;
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumns({
@JoinColumn(name = "division_labeldefintion", referencedColumnName = "labeldefinition"),
@JoinColumn(name = "division", referencedColumnName = "abbr")
})
private LabelFile divisionLabel;
我想做的是从一个表(包含 division
列,并将其与 LabelFile
表连接起来)进行多列连接。
最佳答案
如果你想在映射中重用一个列,你应该将一个列标记为 insertable=false updatable=false
,以便 Hibernate 知道哪个 Java 引用值是相关的。
有关何时使用这些属性的更多信息,请参阅此 question .
关于java - @JoinColumns - 实体映射中的重复列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12414926/