gpt4 book ai didi

Spring Data JPA 命名策略——使用驼峰命名法

转载 作者:行者123 更新时间:2023-11-29 13:46:37 32 4
gpt4 key购买 nike

我知道有很多关于这个主题的问题/答案。不幸的是,他们都没有帮助我。

我定义了一个实体

@Entity
public class SimpleEntity ...

现在我希望到关系数据库的映射应该使用与实体之一相同的名称。只是普通的驼峰式大小写 SimpleEntity。令我惊讶的是它不起作用。默认情况下 Spring Data JPA 将其映射到 snake case。

我看了很多答案。一个被多次传播的解决方案是设置物理命名策略。

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

设置此选项会将映射命名更改为小写变体 simpleentity。当使用不区分大小写但 PostgreSQL 不区分大小写的数据库时,这可能没问题。

我还在 hibernate 文档中读到应该使用设置隐式命名策略来定义隐式映射(因为我没有定义任何表名)。但是无论我使用哪种设置作为隐式命名策略,映射都保持不变。 明白了,隐式命名策略只是逻辑名称映射。

我正在使用

spring-boot-starter-data-jpa:1.5.8.RELEASE
PostgreSQL Version 10.0

我已经为我的数据库 PostgreSQLDialect 相应的 PostgreSQL95Dialect 定义了具有正确值的 hibernate 方言。

我知道我可以实现自定义 PhysicalNamingStrategy。但我只想拥有与我的实体名称相同的表名。这应该是标准情况,简单易行,使用普通 JPA + Hibernate 无需任何配置即可开箱即用。那么为什么让 Spring 如此重要呢?

最佳答案

经过一段时间的努力,以下对我有用。

  1. 在你的 application.properties 添加:

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

  1. 使用以下注释 SimpleEntity:

@实体

@Table(name="\"SimpleEntity\"")

公共(public)类 SimpleEntity...

关于Spring Data JPA 命名策略——使用驼峰命名法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47316832/

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