映射主键

来源:互联网 发布:ubuntu分区图文教程 编辑:程序博客网 时间:2024/06/05 06:27
1.定义一个持久化类时,Hibernate建议为该持久化类定义一个标识属性,用来某一个持久化实例。此标识属性映射到底层数据表的主键。2.定义一个标识属性只需要:` @Id`无需指定其他任何属性,如果想主键自动生成主键值,则必须使用@GeneratedValue标签注解。3.@GeneratedValue支持的4种属性值如图所示:

这里写图片描述
4.JPA注解只能支持AUTO、INDETITY、SEQUENCE、TABLE等4种主键值生成策略。Hibernate也提供了主键值生成策略,在这里我们只需要学会JPA注解方式即可。

5.除了int类型数据可以作为主键,其他类型也可以, 比如说字符串类型。

 package cn.codekong.entity;import java.io.Serializable;import java.util.Date;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.Table;@SuppressWarnings("serial")@Entity //表示该类是一个持久化类@Table(name="test1" ,schema="hibernate") //表示Students类映射到数据库中的对应的表名为test1public class Students implements Serializable{    @Id //声明主键    @Column(length=8)     private String sname;    private String gender;    private  Date birthday;    private String major;    //     private Address address;    public Students() {    }    public Students( String sname, String gender, Date birthday, String major, Address address) {        super();        this.sname = sname;        this.gender = gender;        this.birthday = birthday;        this.major = major;        this.address = address;    }    public String getSname() {        return sname;    }    public void setSname(String sname) {        this.sname = sname;    }    public String getGender() {        return gender;    }    public void setGender(String gender) {        this.gender = gender;    }    public Date getBirthday() {        return birthday;    }    public void setBirthday(Date birthday) {        this.birthday = birthday;    }    public String getMajor() {        return major;    }    public void setMajor(String major) {        this.major = major;    }    public Address getAddress() {        return address;    }    public void setAddress(Address address) {        this.address = address;    }}总结:1.必须实现Serializable接口     2.将字段长度设置为更短@Comlumn(length=8)     3.字段值生成策略不能使用     4.其他类型的数据做法也一样
原创粉丝点击