Eclipselink 中带有 @Embaddable 的 @Prepersist/@PreUpdate 未触发

问题描述

从 EclipseLink 文档中它说: 注释类型 PrePersist 和 PreUpdate 指定对应生命周期事件的回调方法。此注解可应用于实体类、映射超类或回调侦听器类的方法

这是否意味着@PrePersist 和@PreUpdate 注释应用于用@Embeddable 注释注释的类的方法将不会被触发?这是我的配置,其中不执行事件 PrePersist 和 PreUpdate。

MyType.clss :

@Entity
@Table(name = "MY_TYPES")
@Inheritance(strategy = InheritanceType.JOINED)
@discriminatorColumn(name ="DTYPE",discriminatorType = discriminatorType.INTEGER,columnDeFinition = "SMALLINT")
@discriminatorValue("0")
public class MyType implements Serializable {
    ...
    ...
}

MySpecialType.class :

@Entity
@Table(name = "MY_SPECIAL_TYPES")
@discriminatorValue("3")
public class MySpecialType extends MyType implements Serializable {
    ....
    @Valid
    @Embedded
    MyEmbeddable myEmbeddable = new MyEmbeddable();
    ....
}

MyEmbeddable.class :

@Embeddable
public class MyEmbeddable {
    ...
    @PreUpdate
    @PrePersist
    public void doSomething() {
        ...
    }
    ...
}

任何帮助将不胜感激。提前致谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...