Hibernate:事件监听器或拦截器,实践中的优缺点是什么?

non*_*tor 8 hibernate

我将实现一个功能,在Hibernate删除后更新表中的id.但我希望得到一些关于哪种方法更好的反馈.我正在更新值的表,Hibernate不知道它,所以我将不得不做一个直接的jdbc更新 - 是甚至可能.

Chs*_*y76 8

至于使用监听器/拦截器,我会选择监听器 - 它在可以收听的事件方面更灵活.拦截器的主要目的是某些事件之前检查/改变对象属性(例如删除); 而侦听器可以配置为收听"PostDelete"事件或许多其他事件.

但是,如果所述表未映射,为什么还需要?您可以在调用delete()之后直接在代码中更新它(或者如果涉及外键,则在调用flush()之后).

您也可以在触发器中执行此操作(可能;当然,取决于数据库中是否有必要的信息).