Springboot3 与 Hibernate6 错误,未找到类 SpringPhysicalNamingStrategy

问题描述 投票:0回答:1

springboot 3.24 休眠6.44 JDK 21

错误: 抑制:java.lang.ClassNotFoundException:org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy

在网上搜索到 SpringPhysicalNamingStrategy 已被弃用,使用 CamelCaseToUnderscoresNamingStrategy 代替。 但我更新设置后仍然失败,

spring:
  jpa:
    hibernate:
      naming:
        physical-strategy: org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy
        #physical-strategy: org.springframework.boot.orm.jpa.hibernate.CamelCaseToUnderscoresNamingStrategy
        #physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
        #physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
        #implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy

我尝试使用springinitializr生成一个全新的项目,只复制其中数据库相关的代码,但也失败了。

java spring-boot hibernate spring-data-jpa
1个回答
0
投票

终于修好了, 正确的配置是: property.put("hibernate.dialect", "org.hibernate.dialect.MySQLDialect"); property.put("hibernate.ddl-auto", "更新"); property.put("hibernate.id.new_generator_mappings", "false"); property.put("hibernate.physical_naming_strategy", “org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy”);

首先,使用MySQLDialect而不是MySQL5InnoDBDialect,将其删除。 第二,使用“org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy”而不是springframework jar。

© www.soinside.com 2019 - 2024. All rights reserved.