在启动我的应用程序(Spring Boot、Spring Data JPA、Spring Batch、Postgres DB(时,我收到这样的警告:
2020-03-04 11:53:24.559 WARN [-,,,] 25743 --- [ main] o.s.b.a.batch.JpaBatchConfigurer : JPA does not support custom isolation levels, so locks may not be taken when launching Jobs
我对弹簧引导隔离级别进行了一些研究,我们有:DEFAULT
、READ_COMMITTED
、READ_UNCOMMITTED
、REPEATABLE_READ
和SERIALIZABLE
。
根据警告,我理解JPA不支持这一点,但只对给定的DB使用DEFAULT,在我的情况下,对于Postgres是READ_COMMITTED
。
我还读到Spring批处理事务的默认隔离级别是SERIALIZABLE
,以防止同一作业实例同时执行。
有人能解释一下吗?我什么时候会担心这个警告?我不知道我是否应该做点什么。
READ_COMMITTED
应该可以很好地与Postgers配合使用。来自Spring Batch文档的JobRepository部分的Transaction Configuration:
该方法的默认隔离级别是SERIALIZABLE,这是非常激进的:READ_COMMITTED也可以正常工作
所以我相信忽略此警告是安全的。