项目遇到的问题

一、下述配置项的作用

    参考链接:https://blog.csdn.net/WZH577/article/details/99698187

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

   1、Hibernate 5 之前

spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.DefaultNamingStrategy

      该配置项有两个取值

          1)org.hibernate.cfg.DefaultNamingStrategy:hibernate默认配置,如果没有使用@Table和@Column注解,采用直接映射的方式,不会做过多的处理。如果有则以注解内容为准。

          2)org.hibernate.cfg.ImprovedNamingStrategy:表名,字段为小写,当有大写字母的时候会添加下划线分隔符号,如:user_id

   2、Hibernate5 之后

     采用implicit-strategy和physical-strategy两个配置项分别控制命名策略

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

1、implicit-strategy和physical-strategy的区别

(1)、implicit-strategy负责模型对象层次的处理,将对象模型处理为逻辑名称。physical-strategy负责映射成真实的数据名称的处理,将上述的逻辑名称处理为物理名称。

(2)、当没有使用@Table和@Column注解时,implicit-strategy配置项才会被使用,当对象模型中已经指定时,implicit-strategy并不会起作用。physical-strategy一定会被应用,与对象模型中是否显式地指定列名或者已经被隐式决定无关。

2、implicit-strategy逻辑名称命名策略

有五个配置值:

org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl
org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl
org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyHbmImpl
org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy

默认为ImplicitNamingStrategyJpaCompliantImpl,后四者均继承自它。

3、physical-strategy物理名称命名策略

有两个配置值:

#直接映射,不会做过多的处理

org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

#表名,字段为小写,当有大写字母的时候会添加下划线分隔符号

org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy

 默认为SpringPhysicalNamingStrategy
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值