1
我創建了3個實體類,名爲NodeBase
,NodeDocument
和NodeFolder
。JPA TABLE_PER_CLASS繼承:創建抽象實體表
使用表每類繼承stategy和如表每類繼承定義的一個表被定義爲繼承層次結構中的每個具體的類,在這種情況下NodeBase
是抽象的實體但該實體的表中創建命名NODEBASE。
@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public abstract class NodeBase implements Serializable {
@Column(name="NBS_UUID")
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long uuid;
@Column(name="NBS_NAME")
@Basic
private String name;
@ManyToOne(targetEntity = NodeFolder.class)
private NodeFolder parent;
}
@Entity
@Table(name="SDM_NODE_DOCUMENT")
public class NodeDocument extends NodeBase implements Serializable {
@Column(name="NDC_MIMETYPE")
@Basic
private String mimeType;
}
@Entity
@Table(name="SDM_NODE_FOLDER")
public class NodeFolder extends NodeBase implements Serializable {
@OneToMany(targetEntity = NodeBase.class,mappedBy = "parent")
private Collection<NodeBase> children;
}
如何創建實體類,以僅兩個表應創建一個名爲SDM_NODE_DOCUMENT和SDM_NODE_FOLDER的方法嗎?
或許說明什麼是你的JPA實現可能會有幫助,因爲有一個抽象表對這個策略沒有意義 –
使用Eclipselink JPA實現。 – jGauravGupta