2012-10-23 4 views
5

Das ist mein abstrakter Vater:Wie Überschreiben der Hibernate Collection Join-Spalte?

@MappedSuperclass 
public abstract class AbstractEntity implements Serializable { 

    @OneToMany(fetch = FetchType.LAZY) 
    @JoinColumn(name = "entity_no", referencedColumnName = "MY_COLUMN") 
    private Set<CLASS_TYPE> list; 
} 

All meine Entitäten diesen Satz, aber jede Einheit verschiedene referencedColumnName hat.

Gibt es eine Möglichkeit, nur die @JoinColumn Annotation zu überschreiben?

Antwort

7

Sie können AssociationOverride Annotation verwenden. In Ihrem Fall würde es so aussehen:

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

} 
0

Wenn Sie Anmerkungen zu den Eigenschaften (z. B. Getter) statt zu den Feldern definieren, können Sie die public Set<CLASS_TYPE> getList() in jeder der Unterklassen außer Kraft setzen und @JoinColumn separat definieren.

Verwandte Themen