gpt4 book ai didi

java - Spring - Hibernate JPA 配置中的问题设置方言

转载 作者:行者123 更新时间:2023-12-02 11:46:56 34 4
gpt4 key购买 nike

我正在从 Spring Boot 1.5.9 迁移到普通 Spring 项目。

application.properties中我添加了

spring.autoconfigure.exclude[0]=org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration
spring.autoconfigure.exclude[1]=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
spring.autoconfigure.exclude[2]=org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration
spring.autoconfigure.exclude[3]=org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration

application.properties中,我有一行定义了我正在使用的方言,它与自动配置一起正常工作

spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl

如果我删除方言行,则自动配置。我在配置类中指定属性(包括方言)的方法如下

private Map<String, String> properties = new HashMap<String, String>();

public HibernateJpaConfig() {
properties.put("hibernate.hbm2ddl.auto", "create-drop");
properties.put("hibernate.ejb.naming_strategy", "org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl");
}

我注意到一条警告消息,这可能是我的问题

WARN 13292 --- [  restartedMain] org.hibernate.orm.deprecation            : HHH90000006: Attempted to specify unsupported NamingStrategy via setting [hibernate.ejb.naming_strategy]; NamingStrategy has been removed in favor of the split ImplicitNamingStrategy and PhysicalNamingStrategy; use [hibernate.implicit_naming_strategy] or [hibernate.physical_naming_strategy], respectively, instead.

如果我尝试将 map 的第二个值替换为其中一个值,我仍然会遇到相同的错误。

最佳答案

请查看此 Spring Boot 发行说明。 https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.4-Release-Notes#naming-strategy

我认为问题出在命名策略上。

SpringNamingStrategy 不再使用,因为 Hibernate 5.1 删除了对旧 NamingStrategy 接口(interface)的支持。现在会自动配置一个新的 SpringPhysicalNamingStrategy,它与 Hibernate 的默认 ImplicitNamingStrategy 结合使用。这应该非常接近(如果不相同)Spring Boot 1.3 默认值,但是,您应该在升级时检查数据库架构是否正确。

如果您在升级之前已经使用 Hibernate 5,则可能使用 Hibernate 5 的默认值。如果您想在升级后恢复它们,请在您的配置中设置此属性:

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

关于java - Spring - Hibernate JPA 配置中的问题设置方言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48134301/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com