如何覆盖 Hibernate 集合连接列?

10
这是我的抽象父类:
@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注释?

2个回答

15

您可以使用AssociationOverride注释。在您的情况下,它将如下所示:

@Entity
@AssociationOverrides({
   @AssociationOverride(name = "list",
      joinColumns = @JoinColumn(referencedColumnName = "COLUMN_NEW_NAME"))
})
public class ConcreteEntity extends AbstractEntity {

}

1
如果您在属性(即getter)上定义注释而不是在字段上定义注释,则可以在每个子类中覆盖public Set<CLASS_TYPE> getList()并单独定义@JoinColumn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接