создание динамических аудиторов - PullRequest
0 голосов
/ 24 сентября 2018

User.java

@Entity
@EntityListeners(UserAuditListener.class)
public class User implements UserDetails{

}

UserAuditListerner

public class UserAuditListener extends ParentAuditListeners<User> {

    /*@PrePersist
    public  void prePersist(User user){
        perform(user,Action.INSERTED);
    }

    @PreUpdate
    public void preUpdate(User user){
        perform(user,Action.UPDATED);
    }

    @PreRemove
    public void preRemove(User user){
        perform(user,Action.DELETED);
    }


    @Transactional(Transactional.TxType.MANDATORY)
    public void  perform(User user, Action action){
       EntityManager em = AuditEntityBean.getBean(EntityManager.class);
       String table = user.getClass().getName().substring(26);
       AuditLogs auditLogs = new AuditLogs(action,table);
       em.persist(auditLogs);

    }
*/

}

ParentAuditListener.java

public class ParentAuditListeners<U> {


    @PrePersist
    public  void prePersist(U u){
        perform(u,Action.INSERTED);
    }

    @PreUpdate
    public void preUpdate(U u){
        perform(u,Action.UPDATED);
    }

    @PreRemove
    public void preRemove(U u){
        perform(u,Action.DELETED);
    }


    @Transactional(Transactional.TxType.MANDATORY)
    public void  perform(U u, Action action){
        EntityManager em = AuditEntityBean.getBean(EntityManager.class);
        String table = u.getClass().getName().substring(26);
        AuditLogs auditLogs = new AuditLogs(action,table);
        em.persist(auditLogs);

    }

}

Сценарий таков, что я хочу провести аудит нескольких организаций.и мне нужны эти @PrePersist, @PreUpdate and @PreRemove методы в каждом слушателе.

Я создал класс ParentAuditListener, чтобы я мог расширить его для другого класса Auditlistener.например: -

public class BankAuditListener extends ParentAuditListener<Bank> {
}

и сохранить несколько журналов о банке в моей базе данных.

В приведенном выше классе UserAuditListener, если я удаляю, расширяет ParentAuditListener и раскомментирует эти @PrePersist, @PreUpdate and @PreRemove, он работает, как и ожидалось.

но сейчас я пытаюсь сделать его динамичным, а не писать их снова и снова.Это не работает.UserAuditListener никогда не будет выполняться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...