jpa で文字列 ID を実装する最も簡単な方法は何ですか? これまでのところ、私が持っているのは
@Id
@GeneratedValue
private int id;
そして、私が欲しいのは次のようなものです
@Id
@GeneratedValue
private String id;
しかし、このように使用すると、「この ID ジェネレーターは long、integer、short を生成します」と表示されます。
jpa で文字列 ID を実装する最も簡単な方法は何ですか? これまでのところ、私が持っているのは
@Id
@GeneratedValue
private int id;
そして、私が欲しいのは次のようなものです
@Id
@GeneratedValue
private String id;
しかし、このように使用すると、「この ID ジェネレーターは long、integer、short を生成します」と表示されます。
次のように Java から UUID を作成できます。
UUID.randomUUID().toString();
または、Hibernate のように JPA がサポートしている場合は、以下を使用できます。
@Id @GeneratedValue(generator="system-uuid")
@GenericGenerator(name="system-uuid", strategy = "uuid")
private String myId;
「JPA UUID」をグーグルで検索すると、多くの選択肢があります。
EclipseLink を使用している場合は、@UuidGenerator を使用できます。
http://www.eclipse.org/eclipselink/documentation/2.4/jpa/extensions/a_uuidgenerator.htm#CFAFIIFC
必要に応じて、シーケンス整数を文字列に変換することもできます。