Spring Data JPA命名策略 - 使用Camel案例

时间:2017-11-15 20:39:53

标签: spring postgresql hibernate jpa

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

我已经定义了Entity

@Entity
public class SimpleEntity ...

现在我希望映射到关系数据库的名称应该与实体的名称相同。只是简单的骆驼案SimpleEntity。令我惊讶的是它不起作用。默认情况下Spring Data JPA将其映射到蛇案例。

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

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 个答案:

答案 0 :(得分:0)

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

  1. 在您的application.properties中添加:
  2. spring.jpa.hibernate.naming.physical策略= org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

    1. 使用以下内容注释SimpleEntity:
    2. @Entity

      @Table(名称= “\” SimpleEntity \ “”)

      public class SimpleEntity ...