1. IdentityGeneratorを継承したクラスを作成
UuidGenerator.java
package com.sample;
public class UuidGenerator extends IdentityGenerator{
@Override
public Serializable generate(SharedSessionContractImplementor session, Object obj) {
// UUIDを生成し返却する
return UUID.randomUUID().toString();
}
}
2. Entityクラスの主キーにアノテーション設定
User.java
@Entity
@Table(name = "users")
public class User {
@Id
// nameは任意、strategyにはパッケージを含むIdentityGeneratorクラスを指定
@GenericGenerator(name = "UuidGenerator", strategy = "com.sample.UuidGenerator")
// generatorには@GenericGeneratorのnameを指定
@GeneratedValue(generator = "UuidGenerator")
@Column(name = "user_id")
private String id;
// 以下省略
}