jOOQ与JPA事务集成及Spring Boot+Hibernate下的事务疑问
关于jOOQ 3.17在Spring Boot+Hibernate环境下的事务相关问题解答
问题1:是否需要自行实现SpringTransactionProvider?
在Spring Boot集成Hibernate的场景下,不需要自行实现SpringTransactionProvider。原因如下:
- Spring Boot引入jOOQ starter依赖(
org.springframework.boot:spring-boot-starter-jooq)后,会自动配置适配Spring的SpringTransactionProvider,框架会自动关联Spring的事务管理器,包括Hibernate底层使用的事务管理机制(不管是JTA还是本地事务管理器)。 - jOOQ会自动适配Spring的事务上下文,和Hibernate共享同一个事务边界——使用Spring的
@Transactional注解管理事务时,jOOQ的操作会自动加入到该事务中,无需额外自定义事务提供者。
问题2:如何开启jOOQ的事务启停日志?
可以通过调整日志配置实现,具体操作:
- jOOQ的事务相关日志由
org.jooq.impl.TransactionProvider路径下的类输出,只需在日志配置中将该路径的日志级别设为DEBUG:- 若使用application.properties配置:
logging.level.org.jooq.impl.TransactionProvider=DEBUG - 若使用logback.xml配置:
<logger name="org.jooq.impl.TransactionProvider" level="DEBUG"/>
- 若使用application.properties配置:
- 开启后,就能看到类似Hibernate的事务启动、提交、回滚日志,示例日志如下:
DEBUG org.jooq.impl.TransactionProvider - Starting transaction
DEBUG org.jooq.impl.TransactionProvider - Committing transaction
DEBUG org.jooq.impl.TransactionProvider - Rolling back transaction
内容的提问来源于stack exchange,提问作者Kevin
相关产品推荐
相关产品推荐

