java实体类中PK注解什么意思

Python015

java实体类中PK注解什么意思,第1张

这个pk的英文是primary key

通常我们在写完实体类之后要与数据库中的表进行对应,字段也要一一对应,当出现pk时也就是这个字段对应着数据库表的主键。

你这属于继承映射,不能简单的在实体类中配置@Entity,你应该使用Hibernate

Annotation中的《映射继承关系》具体怎么配置,自己去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

    }

不用谢,请叫我雷锋~