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

Hibernate执行DDL报错:c_library相关配置缺失排查求助

解决org.hibernate.tool.schema.spi.CommandAcceptanceException:c_library.template_details创建失败

问题核心原因

你遇到的问题本质是Hibernate默认的物理命名策略自动把驼峰式的schema名称cLibrary转换成了下划线分隔的c_library,但你的数据库中并没有c_library这个schema,而配置里指定的默认schema是cLibrary,导致DDL执行时找不到目标schema报错。

Spring Boot默认使用的SpringPhysicalNamingStrategy会自动将驼峰命名转换为下划线分隔的小写格式,这就是为什么明明配置的是cLibrary,却生成了c_library的原因。

解决方案

1. 修改Hibernate物理命名策略(推荐)

在application.properties中添加以下配置,让Hibernate严格保留原命名格式,不自动转换驼峰为下划线:

spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

添加后Hibernate会直接使用你配置的cLibrary作为schema名称执行DDL。

2. 统一schema名称(适配默认命名策略)

如果想保留默认的命名策略,可以:

  • 在PostgreSQL中创建c_library schema(全小写下划线格式)
  • 将application.properties中的spring.jpa.properties.hibernate.default_schema修改为c_library

3. 清理缓存并重启

修改配置后,清理项目的target/build目录,彻底重启应用,避免Hibernate缓存旧的配置信息导致问题残留。

4. 排查实体类配置

再次确认模板相关实体类TemplateDetails(及其继承的基类)上的@Table注解是否有指定schema="c_library",避免遗漏局部配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 20:20:27