java - @JoinColumns - 实体映射中的重复列

标签 java hibernate jpa

我可能只是误解了@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/

相关文章:

java - 静态 block 的执行

java - 如何将数据从数据库表加载到浏览器并将数据更新回数据库?

java - Hibernate注解,Mysql TEXT列,始终创建varchar

java - EntityManager Hibernate 5 没有持久性提供程序

java - JPA使用flush来触发异常并停止执行

java - Eclipse 安装程序 "Java for Windows Missing"

JavaFX : Use an Indeterminate Progressbar in a splashScreen

java - 更改 ListView 的一个元素

java - 是否应该更改 hibernate 生成的代码以满足需要?

java - 在查询中映射复合外键