12

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

@Id
@GeneratedValue
private int id;

我想要的是

@Id
@GeneratedValue
private String id;

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

4

2 回答 2

20

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

UUID.randomUUID().toString();

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

@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 回答