我想实现这样的目标:
@Entity
@Table(name = "beer")
public class Beer {
@Id Long id;
String brand;
String name;
}
@Entity
public class BeerWithIngredients extends Beer {
@OneToMany(mappedBy="beer")
List<BeerIngredient> ingredients;
}
@Entity
public class BeerIngredient {
@Id Long id;
// .. whatever fields
@ManyToOne
@JoinColumn(name = "beer_id")
BeerWithIngredient beer;
}
从物理上讲,所有啤酒数据都在一张表中,但我希望将其分成更多实体。
请注意:
@DiscriminatorFormula
Beer
中嵌入BeerWithIngredients
,因为它本质上不是合成,而是正确的继承有没有办法用JPA(Hibernate)实现这个目标?现在它抱怨缺少鉴别列,我不打算提供。
答案 0 :(得分:0)
介绍一个具有所有常见啤酒属性的新超级RootBeer
。使用MappedSuperClass注释此类。让Beer
和BeerWithIngredients
继承自RootBeer
,并使用Entity
和Table(name="beer")
对其进行注释。
例如,检查this。