审核JPA实体eclipselink

时间:2018-03-02 17:23:16

标签: java jpa eclipselink audit

我需要审核更新,插入和删除,我使用eclipselink作为JPA提供程序。我需要存储所有修改过的数据。

我尝试使用@PrePersist进行合并,但我不知道为什么,它没有被调用,并且以前无法将对象作为我的数据传递。

其他问题是在更新事务中我将需要存储事务之前和之后的数据进行比较,同样在删除时,我需要存储已删除的数据。

这样做的最佳方式是什么?

@Entity
@EntityListeners(FrotaListener.class)
@Table(name="frota" , schema="sap")
@NamedQuery(name="Frota.findAll", query="SELECT f FROM Frota f")
public class Frota implements Serializable {..}


public class FrotaListener {

@PrePersist
@PreUpdate
@PreRemove
private void beforeAnyOperation(Object object) { 
    System.out.println("teste"); 
    }
}


        try {
        em.getTransaction().begin();
        em.flush();
        em.merge(frota);
        em.flush();
        em.getTransaction().commit();
    } catch (Exception e) {
        sqlErrorParse(e);
        e.printStackTrace();
    }finally {
        em.close();
    }

并且永远不会调用FrotaListener

0 个答案:

没有答案