在jpa中实现字符串id的最简单方法是什么? 到目前为止我所拥有的是
@Id
@GeneratedValue
private int id;
我希望拥有的是
@Id
@GeneratedValue
private String id;
但如果我像这样使用它,我会得到'这个id生成器生成长整数,短'。
答案 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
如果需要,您还应该能够将序列整数转换为字符串。