这是我抽象的父亲:
@MappedSuperclass
public abstract class AbstractEntity implements Serializable {
@OneToMany(fetch = FetchType.LAZY)
@JoinColumn(name = "entity_no", referencedColumnName = "MY_COLUMN")
private Set<CLASS_TYPE> list;
}
我的所有实体都有此集,但每个实体都有不同的referencedColumnName
。
有没有办法只覆盖@JoinColumn
注释?
答案 0 :(得分:8)
您可以使用AssociationOverride注释。在你的情况下,它看起来像这样:
@Entity
@AssociationOverrides({
@AssociationOverride(name = "list",
joinColumns = @JoinColumn(referencedColumnName = "COLUMN_NEW_NAME"))
})
public class ConcreteEntity extends AbstractEntity {
}
答案 1 :(得分:0)
如果您在属性(即getter)上而不是在字段上定义注释,则可以覆盖每个子类中的public Set<CLASS_TYPE> getList()
并单独定义@JoinColumn
。