【发布时间】:2022-01-19 17:57:36
【问题描述】:
我今天偶然发现了一个奇怪的错误。我在 Spring Boot 应用程序中的 Java 持久性应用程序编程接口 (JPA) 实体之一无法正常工作。我将问题追踪到一个列:
@javax.persistence.Column(name = "NameWrittenInPascalCase")
java.lang.String c;
当我检查 Spring Boot/Hibernate 生成的结构化查询语言 (SQL) 查询时,我发现了问题。 Spring Boot 或 Hibernate 将 NameWrittenInPascalCase 转换为 name_written_in_pascal_case (只写在蛇形案例中)。 (当然,在数据库中,我的列名是用 PascalCase 写的)。
看在上帝的份上,为什么?
以及如何防止它这样做?
如果您需要其他信息,我使用 Spring Boot 版本 2.5.7。
【问题讨论】:
-
你试过用反引号转义字符串吗?喜欢
@javax.persistence.Column(name = "`NameWrittenInPascalCase`") -
不,但这没有帮助。在发送到服务器的查询中仍然有
name_written_in_pascal_case。 :( -
取决于您的休眠版本,属性名称需要在 application.properties 中进行调整。参考这个帖子:stackoverflow.com/questions/29087626/…
-
哦,谢谢。看起来这个问题可能与您链接的问题重复。之前找的时候没找到。
标签: java sql spring-boot hibernate entity