我知道这个主题有很多问题/答案。不幸的是,他们都没有帮助过我。
我已经定义了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变得如此重要呢?
答案 0 :(得分:0)
经过一段时间的努力,以下对我有用。
spring.jpa.hibernate.naming.physical策略= org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
@Entity
@Table(名称= “\” SimpleEntity \ “”)
public class SimpleEntity ...