2012-10-23 56 views
5

這是我的父親摘要:如何重寫hibernate集合連接列?

@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註釋?

回答

7

您可以使用AssociationOverride註釋。在你的情況下,它看起來像這樣:

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

} 
0

如果您在屬性(即getter)而不是字段上定義註釋,則可以覆蓋每個子類中的public Set<CLASS_TYPE> getList(),並分別定義@JoinColumn