21.hibernate承袭映射table_per_class
21.hibernate继承映射table_per_class
t_gen_table表结构:
person表结构:
teacher表结构:
student表结构:
t_gen_table表结构:
person表结构:
teacher表结构:
student表结构:
package entity; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; import javax.persistence.TableGenerator; @Entity @Inheritance(strategy=InheritanceType.TABLE_PER_CLASS) @TableGenerator( name="t_gen", table="t_gen_table",//主键生成表名称 pkColumnName="t_pk",//第一个字段名称(主键名称:属性名) valueColumnName="t_value",//第二个字段名称(保存上次的主键值:属性名) pkColumnValue="person_pk",//第一个字段值(主键名称值:属性值) initialValue=1, allocationSize=1 ) public class Person { private int id; private String name; @Id @GeneratedValue(generator="t_gen",strategy=GenerationType.TABLE) public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
package entity; import javax.persistence.Entity; @Entity public class Teacher extends Person { private String title; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } }
package entity; import javax.persistence.Entity; @Entity public class Student extends Person { private int score; public int getScore() { return score; } public void setScore(int score) { this.score = score; } }