12

jpa で文字列 ID を実装する最も簡単な方法は何ですか? これまでのところ、私が持っているのは

@Id
@GeneratedValue
private int id;

そして、私が欲しいのは次のようなものです

@Id
@GeneratedValue
private String id;

しかし、このように使用すると、「この ID ジェネレーターは long、integer、short を生成します」と表示されます。

4

2 に答える 2

20

次のように Java から UUID を作成できます。

UUID.randomUUID().toString();

または、Hibernate のように JPA がサポートしている場合は、以下を使用できます。

@Id @GeneratedValue(generator="system-uuid")
@GenericGenerator(name="system-uuid", strategy = "uuid")
private String myId;

詳細については、このブログ投稿をご覧ください。

「JPA UUID」をグーグルで検索すると、多くの選択肢があります。

于 2012-12-04T10:47:33.270 に答える
2

EclipseLink を使用している場合は、@UuidGenerator を使用できます。

http://www.eclipse.org/eclipselink/documentation/2.4/jpa/extensions/a_uuidgenerator.htm#CFAFIIFC

必要に応じて、シーケンス整数を文字列に変換することもできます。

于 2012-12-04T15:02:35.690 に答える