9

これは私の抽象的な父です:

@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注釈のみをオーバーライドする方法はありますか?

4

2 に答える 2

11

AssociationOverrideアノテーションを使用できます。あなたの場合、次のようになります。

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

}
于 2012-10-23T10:01:16.183 に答える
1

フィールドではなくプロパティ(つまりゲッター)に注釈を定義する場合はpublic Set<CLASS_TYPE> getList()、各サブクラスでをオーバーライドして、@JoinColumn個別に定義できます。

于 2012-10-23T09:18:29.273 に答える