我发现Hibernate的EventListener
和Interceptor
都没有拦截 HQL executeUpdate 。
2011年在Hibernate论坛上创建了一个类似的线程,但是没有给出解决方案: https://forum.hibernate.org/viewtopic.php?f=1&t=1012054
从那时起已经过去了很多年。如果我想拦截来自HQL执行的数据库更新/插入,怎么办?
Query logicalDeleteQuery = session.createQuery(
"update Request set activeFlag = 'N', " +
" lastChangedById = :lastChangedById, lastChangedDate = :lastChangedDate " +
" where " +
" id = :id ");
//...Set parameters...
logicalDeleteQuery.executeUpdate();