我们经常会用到INT自增,无意间了解了UUID(全局唯一标识符),便尝试将其应用到自己的毕业设计中去,项目用的是Hibernate,所以接下来展示一下在Hibernate下UUID的生成策略。
新建一个java类,声明一个策略通用生成器
@org.hibernate.annotations.GenericGenerator(
name = "UUID_GENERATOR",
strategy = "uuid2"
)
因为项目肯定不止一张表,所以我将生成策略封装起来,后续实体类只需调用就可以了
@MappedSuperclass
public 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")
@Entity
public 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
+ " ]";
}
}
效果图: