JPA是否有类似于hibernates的'@GeneGenerator'来生成自定义ID?

Dim*_*man 11 jpa jpa-2.0

我正在尝试创建一种自定义的计算方式,并传递遵循我自己的模式的唯一ID.

Hibernate具有@GenericGenerator注释,允许您映射自定义类以计算唯一ID并将其分配回@Id列.

  @Id 
  @GeneratedValue(generator="MyIdGenerator")
  @GenericGenerator(name="MyIdGenerator", strategy="com.test.MyIdGenerator")
Run Code Online (Sandbox Code Playgroud)

问题是我不想在包级别使用(休眠)@GenericGenerator.这可能是"纯粹的"JPA/2吗?

谢谢你的时间.

Mik*_*unu 16

不,它没有.只有没有第三方的可能性是自己分配价值.如果你想从调用设置id的方法中保存自己,那么可以使用例如Prepersist回调.

  @PrePersist
  public void ensureId() {
    id = ...
  }
Run Code Online (Sandbox Code Playgroud)