继承映射共有3种方式,具体表现如下:
父类
@inheritance(strategy= InheritanceType.SINGLE_TABLE)
class BaseBean
{
//主键
private int pk;
//创建人
priate String creator;
//创建时间
private String creatime;
//最后修改人
private String lastmodifier;
//最后修改时间
private String lastmodifytime;
}
@DiscriminatorColumn(name="product")
@Entry
@Table(name="TProduct")
class product extends BaseBean
{
private String pname;
}
@DiscriminatorColumn(name="catalog")
@Entry
@Table(name="TCatalog")
class catalog extends BaseBean
{
private String cname;
}
表结构如下: 在一张表中存在多个类的数据 不会使用
BaseBean
pk discriminator pname cname creator creatime lastmodifier lastmodifytime
1 product 小米盒子 张三 2018-05-28
2 catalog 图书类
2.关系表
@inheritance(strategy= InheritanceType.JOINED)
class BaseBean
{
//主键
private int pk;
//创建人
priate String creator;
//创建时间
private String creatime;
//最后修改人
private String lastmodifier;
//最后修改时间
private String lastmodifytime;
}
@Entry
@Table(name="TProduct")
class product extends BaseBean
{
private String pname;
}
@Entry
@Table(name="TCatalog")
class catalog extends BaseBean
{
private String cname;
}
表结构如下 JOINED uuid
BaseBean
pk creator creatime lastmodifier lastmodifytime
1 张三 2018-10-11->TProduct
2 李四 2018-10-12 ->TCatalog
子表1:TProdcut
pname pk
小米盒子 1
子表2:TCatalog
cname pk
图书类 2
3.各一张表
1.每一类都会生成一张表 包括父类
2.不想把父类生成表 将父类设置为抽象的
@inheritance(strategy= InheritanceType.TABLE_PER_CLASS)
absoule class BaseBean
{
//主键
private int pk;
//创建人
priate String creator;
//创建时间
private String creatime;
//最后修改人
private String lastmodifier;
//最后修改时间
private String lastmodifytime;
}
@Entry
@Table(name="TProduct")
class product extends BaseBean
{
private String pname;
}
@Entry
@Table(name="TCatalog")
class catalog extends BaseBean
{
private String cname;
}
表结构如下
子表1:TProdcut
pk pname creator creatime lastmodifier lastmodifytime
1 张三 2018-10-11
2 李四 2018-10-12
子表2:TCatalog
pk cname creator creatime lastmodifier lastmodifytime
1 张三 2018-10-11
2 李四 2018-10-12