当前位置: 首页 > 知识库问答 >
问题:

除非显式指定,否则如何使Spring数据默认命名为camelCase到snake_case的JPA?

鄢英毅
2023-03-14

默认情况下,我的Spring Boot项目通过将名称从camelCase转换为snake_case(例如,从foobar转换为foo_bar)将实体属性映射到表列。

我正在处理一个现有的DB,其中实体属性名称与表列名一样(例如,从foobarfoobar),因此我尝试使用@column注释显式指定名称:

java prettyprint-override">@Column(name = "fooBar")
private String fooBar;

这不起作用。我遵循了这里给出的建议:

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

我的@column现在被成功地考虑了,但是我丢失了对没有@column注释的属性的camelCase到snake_case隐式转换。

除非在@column注释中显式指定,否则知道如何在默认情况下从camelCase转换为snake_case吗?

共有1个答案

冯淳
2023-03-14

从Hibernate5开始,似乎不再支持使用camelCase(Java中的命名约定)将属性名自动转换为SNAKE_CASE。但是,您可以编写自己的NamingStrategy实现,完全可以这样做。请检查这个stackoverflow答案,看看它是如何完成的。

 类似资料: