Hibernate UUID 生成策略

来源:互联网 发布:汽车修理app软件 编辑:程序博客网 时间:2024/05/17 07:30

我们经常会用到INT自增,无意间了解了UUID(全局唯一标识符),便尝试将其应用到自己的毕业设计中去,项目用的是Hibernate,所以接下来展示一下在Hibernate下UUID的生成策略。

新建一个java类,声明一个策略通用生成器

@org.hibernate.annotations.GenericGenerator(        name = "UUID_GENERATOR",        strategy = "uuid2")

因为项目肯定不止一张表,所以我将生成策略封装起来,后续实体类只需调用就可以了

@MappedSuperclasspublic class BaseEntity implements Serializable{    private static final long serialVersionUID = 1L;    protected String id;    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY,generator = "UUID_GENERATOR")//指定要使用的策略生成器    @Column(name = "UID", nullable = false, unique = true)    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }}

实体类只需继承就可以实现

@Table(name="t_user")@Entitypublic class UserEntity extends BaseEntity{    private String username;    private String password;    private String mail;    private String telphone;    @Column(name = "UMAIL", nullable = false, length = 30)    public String getMail() {        return mail;    }    public void setMail(String mail) {        this.mail = mail;    }    @Column(name = "UTELPHONE", nullable = false, length = 30)    public String getTelphone() {        return telphone;    }    public void setTelphone(String telphone) {        this.telphone = telphone;    }    @Column(name = "UNAME", nullable = false, length = 20)    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    @Column(name = "UPASSWORD", nullable = false, length = 32)    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    @Override    public String toString() {        return "User [ \nid : " + this.id + "\nusername : " + this.username                + "\npassword : " + this.password + "\nmail:"+ this.mail + "\ntelphone:"+ this.telphone                + " ]";    }}

效果图:
这里写图片描述

原创粉丝点击