21.hibernate承袭映射table_per_class

21.hibernate继承映射table_per_class
t_gen_table表结构:
21.hibernate承袭映射table_per_class
person表结构:
21.hibernate承袭映射table_per_class
teacher表结构:
21.hibernate承袭映射table_per_class
student表结构:
21.hibernate承袭映射table_per_class
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;
	}

}