开发者

Does JPA have something like hibernates '@GenericGenerator' for generating custom ids?

I'm trying to create a custom way of computing and passing unique id's that follow my own pattern.

Hibernate has the @GenericGenerator annotation that lets you map a custom class for computing a unique id and assigning it back 开发者_运维问答to the @Id column.

example

  @Id 
  @GeneratedValue(generator="MyIdGenerator")
  @GenericGenerator(name="MyIdGenerator", strategy="com.test.MyIdGenerator")

The thing is that i don't want to use (hibernates) @GenericGenerator at package level. Can this be in "pure" JPA / 2 ?

Thanks for your time.


No, it doesn't have. Only possibility without 3rd party is to assign value by yourself. If you want to save yourself from calling method that sets id, then for example Prepersist callback can be used.

  @PrePersist
  public void ensureId() {
    id = ...
  }


If you are using EclipseLink, you can define your own custom Sequence object.

http://wiki.eclipse.org/EclipseLink/Examples/JPA/CustomSequencing

JPA 2.0 does not define a custom sequence generator, but JPA 2.1 does define a Converter API, which may be of use.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜