spring-boot 3.1.0 / Hibernate 6.2.2
#spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy
#spring.jpa.hibernate.naming.implicit-strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
字符串
您可以切换上述选项,但结果保持不变。(或者将其保留为默认的SpringImplicitNamingStrategy)
具有属性的实体:private issueD
和DB列:issue_d
被Map到目标为r1_0.issued
的查询。
导致异常(浓缩):ERROR: column r1_0.issued does not exist Hint: Perhaps you meant to reference the column "r1_0.issue_d".
个
所有其他色谱柱工作正常。
我找不到这方面的任何文件。有什么想法吗
同时,我将列/属性重命名为issued_at/issuedAt
。
1条答案
按热度按时间x8goxv8g1#
我想答案就在
CamelCaseToUnderscoresNamingStrategy
的源代码中:字符串
正如你所看到的,逻辑计算了除了最后一个字符之外的所有字符。只有当长度为2或更长时,标识符的部分才会用下划线分隔。
P.S.如果你想保留
issueD
的名字,你应该实现Hibernate的PhysicalNamingStrategy
接口,并在你的application.properies
中使用它。