假设您有两个实体,一个为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", [email protected](name="ART_NAME")),
@AttributeOverride(name="cost", [email protected](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;
//...
}
谢谢!
你的内容在数据库级别有什么关系?关联表?外键关系? – Perception 2012-04-28 15:48:43
外键关系。 :) – 2012-04-28 15:52:07