gpt4 book ai didi

java - 如何在 Spring Boot 2.0 中为 Native Query 添加事件监听器?

转载 作者:行者123 更新时间:2023-12-02 09:35:29 25 4
gpt4 key购买 nike

目前,我有一个场景,我想为执行的查询添加事件监听器。

我的实体监听器

public class EntityListener implements PostInsertEventListener, PostUpdateEventListener, PostDeleteEventListener {

我的存储库

@Transactional
@Modifying
@Query(value = "UPDATE example e SET e.name = :name WHERE e.id = :id", nativeQuery = true)
void testUpdatedQuery(@Param("name") String name, @Param("id") String id);

如果我使用 spring-data-jpa 的方法,事件监听器工作正常,但如果我尝试上面的 native 查询,我将无法触发该事件。所以,我的问题是如何监听“ native 查询”事件?

谢谢

最佳答案

So, my question is how can I listen "native query" event?

您不能,至少不能以类似于 EntityListener 的方式。原因是无法确定给定更新受影响的实体。

我看到以下选项:

  1. 实现自定义方法,该方法使用相同的 where 子句来加载受影响的实体,然后触发某种事件机制。

  2. 正如 Zorglube 建议的那样,您还可以使用数据源代理来拦截每个 SQL 查询,但这对于您的用例来说可能是低级别的,因为您会看到大量您可能不关心的语句与您的 JPA 实现创建的内容差不多。

关于java - 如何在 Spring Boot 2.0 中为 Native Query 添加事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57554060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com