你好兄弟姐妹,
我有一个类,它将 userAuthInformatin 与 authuserid 列,用户名列和 authusertoken 列保持在一起。
我想在每个插入的authusertoken列中插入uuid数字。我了解了Generated(GenerationTime.INSERT),但我不知道这样做的确切方法。
package entities;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.Generated;
import org.hibernate.annotations.GenerationTime;
@Entity
@Table(name = "authusers")
public class AuthUser {
@Id
@GeneratedValue
private int authuserid;
@Generated(GenerationTime.INSERT)
@Column(name = "authusertoken")
private long authusertoken;
@Column(name = "username")
private String username;
public int getAuthuserid() {
return authuserid;
}
public void setAuthuserid(int authuserid) {
this.authuserid = authuserid;
}
public long getAuthusertoken() {
return authusertoken;
}
public void setAuthusertoken(long authusertoken) {
this.authusertoken = authusertoken;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
答案 0 :(得分:1)
您可以简单地使用UUID Java类,并在创建对象时为此令牌字段赋值:
@Column(name = "authusertoken", columnDefinition = "BINARY(16)")
private UUID authusertoken = UUID.randomUUID();
如果当前关联的行已有值,则在获取实体时,Hibernate将使用Reflection设置它并使用行的列值覆盖authusertoken。
如果这是一个新对象,则在实例化对象时,authusertoken将获得默认的UUID。