2016-04-18 10 views
1

複合クラスのためのhibernateマッピングに問題があります。 問題は、2つのクラスに2つのテーブルがバインドされていることです。また、3つ目のクラス(バスケット)には異なるクラスタイプを含めることができます。Hibernate複合クラスマッピング

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; 

... }

答えて

0

使用JPA inheritance

fruit_typeは、(必要でない場合)Basketに明示的にマッピングする必要はありません。 Fruitクラス(@MappedSuperclassという注釈を付けることができます)には、@DiscriminatorColumnと指定する必要があります。 AppleOrangeのそれぞれには、特定の@DiscriminatorValueが定義されています。必要に応じてenumにすることもできます。

関連する問題