gpt4 book ai didi

java - 除非明确指定,否则如何默认将 Spring Data JPA 从 camelCase 命名为 snake_case?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:22:56 28 4
gpt4 key购买 nike

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

我正在处理一个现有的数据库,其中实体属性名称保留为表列名称(例如从 fooBarfooBar),所以我尝试使用 @Column 注释来显式指定名称:

@Column(name = "fooBar")
private String fooBar;

这是行不通的。我听从了给出的建议 here :

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

我的 @Column 现在已成功考虑,但我正在丢失对没有 @Column 的属性的 camelCase 到 snake_case 隐式转换注释。

知道如何在默认情况下从 camelCase 转换为 snake_case,除非在 @Column 注释中明确指定吗?

最佳答案

当我为我的 H2 和 postgres 存储库注入(inject)自定义 spring 数据源 bean 时,转换为 snake case 的默认 JPA 行为不知何故不起作用。我想在将对象保存到数据库时默认将驼峰大小写转换为蛇形大小写,而无需显式注释列。因此在 application.properties 中添加以下属性对我有用:

spring.jpa.properties.hibernate.physical_naming_strategy: org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy

注意:我使用的是spring boot 2.6.2版本

关于java - 除非明确指定,否则如何默认将 Spring Data JPA 从 camelCase 命名为 snake_case?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50858718/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com