2016-04-18 2 views
1

Ich habe ein Problem mit Hibernate Mapping für Composite-Klasse. Das Problem ist, dass ich 2 Klassen habe, die für 2 Tabellen begrenzt sind, auch habe ich dritte Klasse (Korb), der unterschiedliche Klassenarten enthalten kann.Hibernate Composite Class Mapping

abstract class Fruit {...} 
@Entity 
@Table 
class Apple extends Fruit {...} 

@Entity 
@Table 
class Orange extends Fruit{...} 

@Entity 
@Table 
class Basket { 

... 

@Column 
private FruitType fruit_type; 

// I dont know how to map composite class here 
// It has to be mapped for two tables simultaneously 
// which table has to be bound, depends on field fruit_type 
private Fruit fruit; 

... }

Antwort

0

Verwenden JPA inheritance.

Die fruit_type muss nicht explizit in Basket zugeordnet werden (wenn sie nicht benötigt wird). Es sollte relevant sein für Fruit Klasse (die mit @MappedSuperclass kommentiert werden kann), wo Sie es als @DiscriminatorColumn angeben. Die in jedem der Apple und Orange definieren nur spezifische @DiscriminatorValue. Es kann auch ein enum sein, wenn Sie möchten.