SINGLE_TABLE
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@Data
public class Biology {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String origin;
}
@Entity
@Data
public class Animal extends Biology{
private Integer foot;
private Integer wings;
}
@Entity
@Data
public class Plant extends Biology{
private String leafShape;
}
生成的数据库中有一列dtype来标示是哪张表的数据:
CREATE TABLE IF NOT EXISTS biology (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
dtype VARCHAR(255),
origin VARCHAR(128),
leaf_shape VARCHAR(128),
foot INTEGER,
wings INTEGER
);
JOINED
CREATE TABLE IF NOT EXISTS biology (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
origin VARCHAR(128)
);
CREATE TABLE IF NOT EXISTS animal (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
foot INTEGER,
wings INTEGER
);
CREATE TABLE IF NOT EXISTS plant (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
leaf_shape VARCHAR(128)
);
TABLE_PER_CLASS
CREATE TABLE IF NOT EXISTS biology (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
origin VARCHAR(128)
);
CREATE TABLE IF NOT EXISTS animal (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
origin VARCHAR(128),
foot INTEGER,
wings INTEGER
);
CREATE TABLE IF NOT EXISTS plant (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
origin VARCHAR(128),
leaf_shape VARCHAR(128)
);