JPA是否有类似hibernates'@通用生成器';用于生成自定义ID?
我正在尝试创建一种自定义的计算方式,并按照我自己的模式传递唯一的id Hibernate有@GenericGenerator注释,它允许您映射一个自定义类来计算唯一id并将其分配回@id列 范例JPA是否有类似hibernates'@通用生成器';用于生成自定义ID?,jpa,jpa-2.0,Jpa,Jpa 2.0,我正在尝试创建一种自定义的计算方式,并按照我自己的模式传递唯一的id Hibernate有@GenericGenerator注释,它允许您映射一个自定义类来计算唯一id并将其分配回@id列 范例 @Id @GeneratedValue(generator="MyIdGenerator") @GenericGenerator(name="MyIdGenerator", strategy="com.test.MyIdGenerator") 问题是我不想在包级别使用(hibernate
@Id
@GeneratedValue(generator="MyIdGenerator")
@GenericGenerator(name="MyIdGenerator", strategy="com.test.MyIdGenerator")
问题是我不想在包级别使用(hibernates)@GenericGenerator。
这可以是“纯”JPA/2吗
谢谢你的时间。不,没有。没有第三方的唯一可能性是自己分配价值。若您想避免调用设置id的方法,那个么可以使用例如Prepersist回调
@PrePersist
public void ensureId() {
id = ...
}
如果使用EclipseLink,则可以定义自己的自定义序列对象
JPA 2.0没有定义自定义序列生成器,但JPA 2.1定义了一个转换器API,这可能很有用。确实是一个非常优雅的解决方案。真的允许吗?当规范声明:一般来说,可移植应用程序的生命周期方法不应调用EntityManager或查询操作、访问其他实体实例或修改同一持久性上下文中的关系时,该规范是不明确的[46]。[47]生命周期回调方法可能会修改调用它的实体的非关系状态。转换器不能用于ID。这是我要问的问题。日食序列对象可能就是我的答案