gpt4 book ai didi

java - Spring JPA : How to run multi sql query in one round?

转载 作者:太空宇宙 更新时间:2023-11-04 09:54:49 25 4
gpt4 key购买 nike

在 Spring 中,如果我们在存储库中定义这样的方法:findByName(String name),我们可以调用此方法来检索数据。我想要的是,我是否可以有一些方法来调用 2 个或更多方法,就像我上面所说的那样,并且 Spring 只需一轮而不是 2 轮将查询发送到数据库?我想在确定某些 sql 查询将一起发送的情况下优化性能

更新:一轮意味着在一个连接中我们发送多个 sql 查询。目的是当有超过 1 个 SQL 查询即将发送时,避免超过 1 次往返时间。例如,查询 1 是 select * from table where xx=bb

查询 2 是从 another_table 中选择 *,其中 zz=cc

以简单的方式,我们可以发送 2 个这样的查询:1.通过调用存储库的findbyxx方法发送查询12.通过调用存储库的findbyzz方法发送查询2

在上述情况下,查询 2 将在查询 1 的响应返回后发送。这是浪费IMHW。我正在寻找一种方法来一次发送这两个查询并立即得到答复。

最佳答案

如果要保持这两个查询之间的数据库连接,则必须为 JPA 配置设置事务管理器:

<bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="yourEntityManagerFactory" />
</bean>
<tx:annotation-driven transaction-manager="txManager" />

这意味着当您使用 @Transaction (或整个类)注释 @Service 的方法时,将在您的查询之间保留相同的 session /连接。

了解更多信息:https://www.baeldung.com/transaction-configuration-with-jpa-and-spring

关于java - Spring JPA : How to run multi sql query in one round?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54286525/

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