繁体   English   中英

拦截Spring Data JPA批注@Modifying

[英]Intercept spring data jpa annotation @Modifying

我想审核所有实体修改,所以我使用了一个实现org.hibernate.Interceptor的类。 但是,如果我使用此方法删除一个或多个实体,则不会调用onDelete方法:

@Modifying @Query ("delete from Brand b where b.name= :name") public void deleteAllByName(Param("name") String name);

有没有办法拦截这种查询?

PS:在每种此类查询之前/之后都不能调用拦截器方法,因为有100多种情况,而且可能还会编写更多的情况。

谢谢,特金

我找到了一个解决方案,但不是一个好的解决方案,但现在可以解决:我在EmptyInterceptor(Interceptor的基本实现public String onPrepareStatement(String query)中覆盖了public String onPrepareStatement(String query) ,并检查了查询是否以“ insert”,“ update”开头”或“删除”。 我需要知道这一点,因为我必须将一个实体标记为已过期。 不过,如果有人有更好的解决方案,请告诉我。

谢谢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM