字符串id生成器

时间:2012-12-04 10:43:44

标签: jpa

在jpa中实现字符串id的最简单方法是什么? 到目前为止我所拥有的是

@Id
@GeneratedValue
private int id;

我希望拥有的是

@Id
@GeneratedValue
private String id;

但如果我像这样使用它,我会得到'这个id生成器生成长整数,短'。

2 个答案:

答案 0 :(得分:20)

您可以像这样从Java创建UUID:

UUID.randomUUID().toString();

或者,如果您的JPA支持它,就像Hibernate一样,您可以使用:

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

Checkout this blogpost for details.

如果你谷歌为“JPA UUID”,有很多选择。

答案 1 :(得分:2)

如果您使用的是EclipseLink,则可以使用@UuidGenerator

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

如果需要,您还应该能够将序列整数转换为字符串。