Hibernate Envers:当对象尚未保存时触发onPostInsert

时间:2017-06-17 20:07:00

标签: java hibernate hibernate-envers

在我的Java应用程序中,我希望在持久化对象时监听事件,即添加到数据库中。然后我使用这个持久化对象的id来执行一些查询。这是代码

@Component
public class DataCreationListener extends EnversPostInsertEventListenerImpl {

    private static final long serialVersionUID = 1L;

    @Autowired
    DataService DataService;

    public DataCreationListener() {
        super(null);
    }

    @Override
    public void onPostInsert(PostInsertEvent event) {

        if (event.getEntity() instanceof DataDAO) {

            //Here I use the info from event.getEntity() to perform some queries.
            Data Data = DataService.fromDao((DataDAO) event.getEntity());
            // other stuff
        }
    }

}

但是,由于尚未保存已触发事件的对象,因此查询会引发异常。如果收听者名称为onPostInsert,我希望在已经在dB中输入条目时触发,但事实并非如此。在调试时,我看到一旦控件流出侦听器,那么对象就会被保存。

有没有什么方法可以让我在这里获得所需的功能,即在保存对象时让听众触发,或者以可靠和安全的方式以某种方式做到这一点?有人能指出我正确的方向。谢谢!!

0 个答案:

没有答案