这绝对是可能的。您可以将注释与抽象
Fruit类相关联,而不必在每个实现中都重复它们:
@Entity@Inheritancepublic abstract class Fruit { private Set<Note> notes; ... @oneToMany(cascade = CascadeType.ALL, mappedBy = "fruit") public Set<Note> getNotes() { return notes; }}@Entitypublic class Apple extends Fruit { ...}@Entitypublic class Orange extends Fruit { ...}@Entitypublic class Note { private String theNote; @ManyToOne private Fruit fruit; ...}瞧!
-基于注释的添加: JPA提供了多种处理继承的策略。Java
EE教程中的相关部分将帮助您入门。
基本上,您可以选择:
- 将所有内容存储在一个表中,并使用区分符列知道哪一行是哪种类型
- 将每个具体的类(Apple和Orange)存储在单独的表中
- 拥有一个带有鉴别符列的通用水果表,以及带有水果表外键的苹果和橙色表
另一个编辑:
注意这是一个Hibernate,而不是JPA问题。但是,因为选项相同,所以差别不大。这是Hibernate文档中的相关部分。



