这是jOOQ查询最合理的默认设置,它对应用程序、事务、生命周期等一无所知。 在Spring和jOOQ中,一旦启动事务,Connection就变成线程绑定的,这意味着不是为每个查询获取新的连接,而是为每个查询提供相同的连接(这是代码事务性的先决条件)。 因此,实际上,使代码具有事务性将防止为每个jOOQ查询重新获取新连接。无论您使用的是Spring的事务还是jOOQ的事务。他们都是这样工作的。作为第三种选择,您还可以手动管理JDBC Connection生命周期,并为jOOQ提供Connection而不是DataSource。 This is all documented here as well。
1条答案
按热度按时间xv8emn3q1#
jOOQ的
ConnectionProvider
是这样设计的:ConnectionProvider.acquire():Connection
ConnectionProvider.release(Connection)
Package JDBC
DataSource
的默认实现将有效地调用:DataSource::getConnection
Connection::close
这是jOOQ查询最合理的默认设置,它对应用程序、事务、生命周期等一无所知。
在Spring和jOOQ中,一旦启动事务,
Connection
就变成线程绑定的,这意味着不是为每个查询获取新的连接,而是为每个查询提供相同的连接(这是代码事务性的先决条件)。因此,实际上,使代码具有事务性将防止为每个jOOQ查询重新获取新连接。无论您使用的是Spring的事务还是jOOQ的事务。他们都是这样工作的。作为第三种选择,您还可以手动管理JDBC
Connection
生命周期,并为jOOQ提供Connection
而不是DataSource
。This is all documented here as well。