假设您有两个实体,一个Article
是 ,另一个是Fruits
。现在实体的所有属性都被实体Article
继承了Fruits
。
所以,假设我有带有列的文章表:
ART_ID
ART_NAME
ART_COST
和带有列的水果表:
FRU_ID
FRU_FROZEN
现在我想在我的 JPA 代码中实现,当检索Fruit
对象时,我检索应该是它们的所有数据,这些数据包含来自我Article
和Fruit
表的信息 - ART_ID
, ART_NAME
, ART_COST
, FRU_ID
, FRU_FROZEN
。
这在 JPA 中可能吗?我应该使用@Inheritance
,@JoinColumn
还是什么?如果需要,可以提供代码。
* 编辑 *
我得出的结论是,下面的代码将适合我的需要:
@Entity
@Table(name = "Article")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Article {
@Id @GeneratedValue(strategy=GenerationType.AUTO)
@Basic(optional = false)
@Column(name = "ART_ID")
private Long id;
@Basic(optional = false)
@Column(name = "ART_NAME")
private String name;
@Basic(optional = true)
@Column(name = "ART_COST")
private String cost;
// ...
}
@Entity
@Table(name="Fruits")
@AttributeOverrides({
@AttributeOverride(name="name", column=@Column(name="ART_NAME")),
@AttributeOverride(name="cost", column=@Column(name="ART_COST")),
})
public class Fruits extends Article {
@Id @GeneratedValue(strategy=GenerationType.AUTO)
@Basic(optional = false)
@Column(name = "FRU_ID")
private Long fruitID;
@Column(name="FRU_FROZEN")
private String fruFrozen;
//...
}
谢谢!