避免在带有MySQL的Spring Boot应用程序中“读取设置的会话事务”

时间:2018-09-05 16:07:05

标签: java mysql spring spring-boot

感谢您的关注。我有一个使用JPA / Hibernate和mysql数据库后端的tomcat春季启动应用程序。公开了REST控制器,并用"@Transactional"注释了各种服务方法。

JPA / Hibernate使用实体和存储库对象来持久化和查询mysql数据库中的数据。 SQL查询由JPA Hibernate实体和回购对象生成,如下所示:

public interface FooRepo extends JpaRepository < Foo, String > {
}

以上表示存在一个表Foo,该表具有类型为String的主键。还有一个单独的类Foo。

使用上述FooRepo查询表中的一行时,我看到以下SQL查询

set session transaction read 
select * from Foo where id='IdToQuery';
set session transaction read write

我了解select SQL语句,但不了解为什么正在执行“设置会话事务读取”?

谢谢, 灰

1 个答案:

答案 0 :(得分:0)

在谷歌搜索之后,我发现的唯一建议是实现一个单独的只读事务连接池。 发件人:http://256stuff.com/gray/docs/misc/performance_optimizing_spring_hibernate_transactions/