Item 實體類:在數據中有對應表,表名爲Item.
@Entity
public class Item {
@Id @GeneratedValue
protected Long id;
@Column(nullable = false)
protected String title;
@Column(nullable = false)
protected Float price;
protected String description;
// Constructors, setters, getters
}
Book實體類:在數據庫中對應表爲Item,也就是說Book 自身的字段需要出現在Item數據表中。
@Entity
public class Book extends Item {
private String isbn;
private String publisher;
private Integer nbOfPage;
private Boolean illustrations;
// Constructors, setters, getters
}
CD實體類:原理同Book,在數據庫中對應的表爲Item。
@Entity
public class CD extends Item {
private String musicCompany;
private Integer numberOfCDs;
private Float totalDuration;
private String gender;
// Constructors, setters, getters
}
ITEM表:該表包含了 Item 實體類及其子類的所有字段。
如果是持久化Book 類,該類數據將存儲到Book 實體類和 Item 實體類的相關字段中,Item表中的DTYPE 字段自動存儲字符串“Book”,“Book”爲實體類的名字。
如果是持久化CD 類,原理同上。
CREATE TABLE ITEM (
ID BIGINT,
DTYPE VARCHAR(31),
TITLE VARCHAR(50),
PRICE FLOAT,
DESCRIPTION VARCHAR(200),
ISBN VARCHAR(50),
PUBLISHER VARCHAR(50),
NBOFPAGE INT,
ILLUSTRATIONS SMALLINT,
MUSICCOMPANY VARCHAR(50),
NUMBEROFCDS INT,
TOTALDURATION FLOAT,
GENDER VARCHAR(10),
PRIMARY KEY (ID)
);