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

本小妞迷上赌 提交于 2019-12-17 16:45:39

问题


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.


回答1:


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 = ...
  }



回答2:


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.



来源:https://stackoverflow.com/questions/7461878/does-jpa-have-something-like-hibernates-genericgenerator-for-generating-custo

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!