这个pk的英文是primary key
通常我们在写完实体类之后要与数据库中的表进行对应,字段也要一一对应,当出现pk时也就是这个字段对应着数据库表的主键。
你这属于继承映射,不能简单的在实体类中配置@Entity,你应该使用HibernateAnnotation中的《映射继承关系》具体怎么配置,自己去HibernateAnnotation文档查下
2.2.4.2.
每个类层次结构一张表(第一种,一共三种)
整个继承层次结构中的父类和子类的所有属性都映射到同一个表中,
他们的实例通过一个辨别符(discriminator)列来区分.:
//父类
@Entity
//继承类型使用的是一张表,继承映射分为3个类型,具体自己查
//继承映射成一张表的表结构是
父类字段+子类字段+一个鉴别字段(因为可以有多个子类继承父类,这个鉴别字段用于分别一条数据记录是属于那个子类的)
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
//鉴别字段
name="鉴别字段名称"
discriminatorType
鉴别字段数据类型
@DiscriminatorColumn(
name="planetype",
discriminatorType=DiscriminatorType.STRING
)
//鉴别字段值=Plane
,在保存Plane时,默认表中鉴别字段的值为Plane
//鉴别值不必非与实体类同名,随意起,别与其他重复就行
@DiscriminatorValue("Plane")
public
class
Plane
{
...
}
//子类
@Entity
//鉴别字段值=A320,在保存A320时,默认表中鉴别字段的值为A320
Plane@DiscriminatorValue("A320")
public
class
A320
extends
Plane
{
...
}
@Entity // 表示为实体类@Table(name="t_teacher") // 表名注解
public class Teacher implements Serializable {
private int id
private String username
private int age
@Id // 表示主键
@GenericGenerator(name = "generator", strategy = "increment") @GeneratedValue(generator ="generator") // 自增长
@Column(name = "id") // 类属性对应着表字段
public int getId() {
return id
}
public void setId(int id) {
this.id = id
}
@Column(name="t_username") // 类属性对应着表字段
public String getUsername() {
return username
}
public void setUsername(String username) {
this.username = username
}
@Column(name="t_age") // 在实体类属性进行注解,类属性对应着表字段
public int getAge() {
return age
}
public void setAge(int age) {
this.age = age
}
不用谢,请叫我雷锋~