You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot集成JPA与Liquibase出现liquibase与entityManagerFactory循环依赖错误

错误原因

该问题是Spring Boot 2.5.x版本的已知自动配置缺陷:
当项目同时引入spring-boot-starter-data-jpa和liquibase-core依赖时,两个核心Bean的初始化逻辑形成循环依赖:

  • JPA的entityManagerFactory初始化需要等待Liquibase完成数据库表结构变更,保证实体类和数据库schema匹配
  • 该版本的Liquibase自动配置逻辑又会依赖entityManagerFactory获取数据库连接相关配置,二者互相等待导致启动失败。
解决方案

按推荐优先级排序如下:

  • 方案1:升级Spring Boot版本
    直接将项目Spring Boot版本升级至2.6.0及以上,官方已在该版本修复了这个自动配置导致的循环依赖问题,无需额外修改其他配置。
  • 方案2:调整JPA初始化顺序(适合无需升级大版本的场景)
    在项目的application配置文件中添加配置,延迟JPA的初始化时机,等待Liquibase执行完成后再初始化JPA相关Bean:
    yaml格式配置:
    spring:
      jpa:
        defer-datasource-initialization: true
    
    properties格式配置:
    spring.jpa.defer-datasource-initialization=true
    
  • 方案3:临时允许循环依赖(仅应急调试使用,不推荐线上环境使用)
    在配置文件中开启Spring Boot的循环依赖允许开关:
    yaml格式配置:
    spring:
      main:
        allow-circular-references: true
    
    properties格式配置:
    spring.main.allow-circular-references=true
    

内容的提问来源于stack exchange,提问作者user16558957

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 10:36:06