我有一个依赖性为spring-boot-starter-data-jpa的Spring Boot应用程序.我的实体类有一个带有列名的列注释.例如:

@Column(name="TestName")
private String testName;

由此生成的SQL创建了test_name作为列名称.在寻找解决方案后,我发现spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.EJB3NamingStrategy解决了这个问题(列名取自列注释).

不过,我的问题是,为什么没有命名_策略设置为EJB3NamingStrategy,JPA会忽略列注释?也许hibernate方言与此有关?我正在连接MS SQL 2014 Express,我的日志(log)包含:

Unknown Microsoft SQL Server major version [12] using SQL Server 2000 dialect
Using dialect: org.hibernate.dialect.SQLServerDialect 

推荐答案

对于Hibernate 5,我通过在应用程序中添加以下行解决了这个问题.属性文件:

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

Java相关问答推荐

'在使用apache poi生成Excel数据透视表时,行标签显示为第一列标题,并显示分类汇总

将linkedHashMap扩展到Java中的POJO类

如何在Android上获取来电信息

Spring boot:Bean和动态扩展器

使用Java Streams API比较两个不同的Java集合对象和一个公共属性

如何在返回bigint []值的子查询中使用any?

无法在WebSocket onMessage中捕获错误

在JavaFX项目中注册组合框的控件FX验证器时,模块系统出错

Java 21 struct 化连接货币,需要可预知的子任务异常排序

编译多个.Java文件并运行一个依赖于用户参数的文件

什么是Java原子属性的正确getter和setter

解释左移在Java中的工作原理

PDFBox未加载内容

使用Jolt将字段转换为列表

声明带有泛型的函数以用作查找映射中的值

如何在我的世界中为互动增加冷却时间?

使用htmlunit和java单击按钮

深度优先搜索实现:算法只向右搜索

当使用不同的参数类型调用时,为什么围绕Objects.equals的类型安全包装不会失败?

如何修复Spring Boot应用程序中的RestDocumentationGenerationException:java.io.FileNotFoundException:/curl-request.adoc(只读文件系统)?