提问者:小点点

Spring数据JPA命名策略 - 使用骆驼大小写


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

我定义了一个< code >实体。

@Entity
public class SimpleEntity ...

现在我希望到关系数据库的映射应该与实体的映射同名。简单的驼色<code>SimpleEntity</code>。令我惊讶的是,它不起作用。默认<code>Spring Data JPA</code>将其映射到snake case。

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

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

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

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

我正在使用

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

我已经为我的数据库PostgreSQLDialect各自的PostgreSQL95Dialect定义了具有适当值的hibernate方言。

我知道我可以实现自定义的< code > PhysicalNamingStrategy 。但是我只想拥有和我的实体名一样的表名。这应该是标准的情况,很简单,使用简单的< code > JPA < code > Hibernate 开箱即用,无需任何配置。那么,为什么让Spring变得如此重要呢?


共1个答案

匿名用户

下面的在纠结了一段时间后对我起作用了。

  1. 在您的应用程序中。特性添加:

spring.jpa.hibernate.naming.physical-策略=org.hibernate.boot.model.naming.物理

@实体

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

公共类SimpleEntity。。。