Java JPA事件侦听器不工作
我使用SpringBoot,运行v1.5.1.RELEASE和Springv4.3.6.RELEASE。我试图对我的JPA事件监听器稍微聪明一点,但它不起作用 我的实体看起来像这样Java JPA事件侦听器不工作,java,spring,hibernate,jpa,Java,Spring,Hibernate,Jpa,我使用SpringBoot,运行v1.5.1.RELEASE和Springv4.3.6.RELEASE。我试图对我的JPA事件监听器稍微聪明一点,但它不起作用 我的实体看起来像这样 @Entity @EntityListeners({MyEntityListener.class}) public class Entity extends SomeOtherEntity implements SomeInterfaceForAudit { } public class MyEntityListe
@Entity
@EntityListeners({MyEntityListener.class})
public class Entity extends SomeOtherEntity implements SomeInterfaceForAudit {
}
public class MyEntityListener extends EntityListener<SchoolAdmin> {
// some other useful things in here...
}
我的EventListener类如下所示
@Entity
@EntityListeners({MyEntityListener.class})
public class Entity extends SomeOtherEntity implements SomeInterfaceForAudit {
}
public class MyEntityListener extends EntityListener<SchoolAdmin> {
// some other useful things in here...
}
公共类MyEntityListener扩展了EntityListener{
//这里还有一些其他有用的东西。。。
}
我的“聪明”在于我试图像这样“概括”整个听众
公共抽象类EntityListener{
public abstract class EntityListener<T> {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@PostUpdate
@PostConstruct
@PostRemove
public void queueForIndex(T entity) {
logger.info("queueForIndex " + entity.toString());
}
}
}
公共抽象类EntityListener{
私有记录器Logger=LoggerFactory.getLogger(this.getClass());
@假想
@施工后
@移除后
公共无效队列索引(T实体){
logger.info(“queueForIndex”+entity.toString());
}
}
}
没有进行日志记录。我尝试在实体类中创建这样的方法
@PostUpdate
public void reIndex() {
System.out.println("--- post update-- ---- -<<<--- " + entity);
}
@postpdate
public void reIndex(){
System.out.println("---更新后----如果您查看官方文档,对于jpa实体生命周期回调注释,您将看到那里没有@Inherited
注释。此元注释导致注释从超类继承。因为它不在这些回调方法注释中,子类将不知道它们的存在MyEntityListener.class正是在这种情况下,通过继承获取queueForIndex(T entity)方法,作为一个普通方法,而不是实体生命周期回调方法
仅显示一个作为示例参考:
如果您查看官方文档,对于jpa实体生命周期回调注释,您将看到那里没有@继承的注释。此元注释导致注释从超类继承。因为它不在这些回调方法注释中,子类将不知道它们在超类中的存在。Exactl在您的案例中,MyEntityListener.class将通过继承获取queueForIndex(T entity)方法,作为普通方法,而不是实体生命周期回调方法
仅显示一个作为示例参考:
我认为这个解释不正确:在我看来,这个问题似乎与@EntityListeners()
注释有关。我认为这个解释不正确:在我看来,这个问题似乎与@EntityListeners()
注释有关。