KRI*_*INI 9 java sql entity hibernate spring-boot
今天我偶然发现了一个奇怪的错误。Spring Boot 应用程序中的 Java 持久性应用程序编程接口 (JPA) 实体之一无法正常工作。我将问题归结为一列:
@javax.persistence.Column(name = "NameWrittenInPascalCase")
java.lang.String c;
Run Code Online (Sandbox Code Playgroud)
当我检查 Spring Boot/Hibernate 生成的结构化查询语言 (SQL) 查询时,我发现了问题。看来 Spring Boot 或 Hibernate 将其转换NameWrittenInPascalCase
为name_written_in_pascal_case
(只是用蛇形写法编写)。(当然,在数据库中,我的列名是用PascalCase写的)。
看在上帝的份上,为什么?
以及如何防止它这样做?
如果您需要其他信息,我使用 Spring Boot 版本 2.5.7。
在您的项目application.properties
文件中设置命名策略:
spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.EJB3NamingStrategy
Run Code Online (Sandbox Code Playgroud)
默认值为org.springframework.boot.orm.jpa.SpringNamingStrategy
更新:
如果上一个属性不能解决您的问题,您可以使用这个(对于较新版本的Hibernate):
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4078 次 |
最近记录: |