![](/img/trans.png)
[英]How to convert firebase data (snake_case) to Java object (camelCase)
[英]How to make Spring Data JPA by default naming from camelCase to snake_case unless explicitly specified?
默認情況下,我的 Spring Boot 項目通過將名稱從 camelCase 轉換為 snake_case(例如從fooBar
到foo_bar
),將 JPA 實體屬性映射到表列。
我正在處理現有數據庫,其中實體屬性名稱與表列名稱保持原樣(例如從fooBar
到fooBar
),因此我嘗試使用@Column
注釋來顯式指定名稱:
@Column(name = "fooBar")
private String fooBar;
這行不通。 我遵循了這里給出的建議:
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
我的@Column
現在已成功考慮在內,但我正在將沒有@Column
注釋的屬性的 camelCase 丟失為 snake_case 隱式轉換。
知道如何在默認情況下從 camelCase 轉換為 snake_case,除非在@Column
注釋中明確指定?
從 Hibernate 5 開始,似乎不再支持使用 camelCase(Java 中的命名約定)將屬性名稱自動轉換為 SNAKE_CASE。但是,您可以編寫自己的 NamingStrategy 實現,這樣做。 請檢查這個 Stackoverflow-Answer以了解它是如何完成的。
當我為我的 H2 和 postgres 存儲庫注入自定義 Spring 數據源 bean 時,轉換為蛇案例的默認 JPA 行為不知何故不起作用。 我想在將對象保存到數據庫時默認將駱駝案例轉換為蛇案例而不顯式注釋列。 因此,在 application.properties 添加以下屬性對我有用:
spring.jpa.properties.hibernate.physical_naming_strategy: org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy
注意:我使用的是spring boot 2.6.2版本
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.