我有很多映射实体,它们都是从抽象类 BaseEntityImpl
扩展而来的。
在这个类中,我有 1 个属性 company,注释如下:
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name = "id_company", nullable = false)
public Company getCompany() {
return company;
}
只有一个子类(准确地说是 Company
),我希望此属性为 NULLEABLE。
但是重写了 setter
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name = "id_company", nullable = true)
@Override
public Company getCompany() {
return company;
}
导致我出现这个错误:
原因:org.hibernate.MappingException:在 ar.com.test.entity.Company 中发现公司的重复属性映射
有什么办法,除了不扩展这个类,并在 Company 类中显式定义所有属性/getters/setters 来实现这一点?
非常感谢!
最佳答案
你试过看@AssociationOverride吗? ?
@Entity
@AssociationOverride(name="company",
joinColumns=@JoinColumn(name="id_company", nullable=true))
public class Company extends BaseEntityImpl {
....
}
关于java - 覆盖@JoinColumn 可为空的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22176736/