如何在Spring Boot的application.yml中配置pessimistic_write锁默认超时时间
正确配置方式
Spring Boot中所有JPA实现的原生属性都需要放在spring.jpa.properties子层级下,你之前配置不生效的原因是属性层级错误,未放到Spring Boot约定的属性传递路径下。
正确的application.yml配置如下:
spring: datasource: url: jdbc:mysql://localhost:3306/testing username: test password: test123 jpa: show-sql: true properties: # 悲观锁超时配置,单位为毫秒 javax: persistence: lock: timeout: 1000
补充说明
- 如果你使用的是基于Jakarta EE的新版本Spring Boot(3.x及以上),属性名需要替换为
jakarta.persistence.lock.timeout,配置层级保持不变即可。 - 如果你需要的是全局查询超时而非单独的锁超时,替换对应属性为
javax.persistence.query.timeout即可,配置逻辑一致。 - 该配置为全局默认值,如果在具体查询方法上通过
@QueryHints注解单独指定了超时参数,会优先使用方法级别的配置。 - 配置生效的前提是你使用的数据库引擎支持行锁超时,例如MySQL需要使用InnoDB引擎。
内容的提问来源于stack exchange,提问作者BlaMath20
相关产品推荐
相关产品推荐

