2016-04-06 1 views
1

J'essaie de mettre en œuvre les par défaut Auditeurs sur les entités JPA. J'ai lu quelques articles et tout article mentionne:Implémenter le port d'écoute par défaut JPA sans configuration XML

Actuellement, les auditeurs par défaut ne peuvent être spécifiées dans un fichier XML de mappage parce qu'il n'y a pas d'annotation équivalente

Avons-nous une solution de contournement pour ce implémenter Listener par défaut sans utiliser de fichier XML.

utilisant: Spring Boot, Data Spring JPA - (Java Configuration)

Répondre

0

vous pouvez ajouter vos listenrs à sur le corps de votre entité ainsi:

@Entity 
public class MyEntity{ 
     //attributes & getters and setters 

     @PrePersist void onPrePersist() {} 
     @PostPersist void onPostPersist() {} 
     @PostLoad void onPostLoad() {} 
     @PreUpdate void onPreUpdate() {} 
     @PostUpdate void onPostUpdate() {} 
     @PreRemove void onPreRemove() {} 
     @PostRemove void onPostRemove() {} 
    } 

OU utiliser l'annotation @EntityListeners de cette manière:

@Entity 
    @EntityListeners({MyListener1.class, MyListener2.class}) 
    public class MyEntity { 

    } 

Et:

public class MyListener1 { @PrePersist void onPrePersist(Object o) {} @PostPersist void onPostPersist(Object o) {} @PostLoad void onPostLoad(Object o) {} @PreUpdate void onPreUpdate(Object o) {} @PostUpdate void onPostUpdate(Object o) {} @PreRemove void onPreRemove(Object o) {} @PostRemove void onPostRemove(Object o) {} }

+1

si je fais cela, je dois ajouter @EntityListeners sur toute l'entité que j'ai .. ce qui est pas ce que je veux faire .. Merci pour la réponse –

+0

@AmanTuladhar sur la première solution que vous n'avez pas à ajouter '@ EntityListener' –

+0

@AmanTuladhar vous pouvez ajouter les écouteurs sur la classe d'entité directement –