我有一个问题,我的@PostLoad上的@Embeddable方法没有被调用。

但是我不知道它是否应该工作,并且某个地方存在更多错误配置的错误,还是我不应该工作,因为@PostLoad仅适用于@Entity

我没有在JSR@PostLoad中找到有关@Embeddable的具体声明。

3.5.1生命周期回调方法

可以在实体侦听器上定义实体生命周期回调方法
类和/或直接在实体类或映射的超类上。

我不知道该语句是否包含@Embeddable

我的持久性提供程序是Eclipselink。

最佳答案

当前未为Embeddables处理实体回调和侦听器。这可能与规范一致,因为它们被称为“实体”回调,而且orm.xml不允许它们被嵌入。

但是,EclipseLink确实支持嵌入式事件,因此没有理由我们不支持此事件,因此请在EclipseLink上记录一个错误。

您应该能够使用DescriptorCustomizer为可嵌入对象定义DescriptorEventListener,PostLoad回调映射到postBuild和postClone。

09-11 18:06