首页 > 数据库技术 > 详细

Hibernate数据库配置项中命名策略说明

时间:2020-07-30 22:03:35      阅读:149      评论:0      收藏:0      [点我收藏+]

一、Hibernate5之前

命名策略采用naming-strategy配置项

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

1、配置值org.hibernate.cfg.DefaultNamingStrategy

hibernate默认配置,采用直接映射的方式,不会做过多的处理,当然前提是没有使用@Table和@Column注解,如果有则以注解内容为准。

2、配置值org.hibernate.cfg.ImprovedNamingStrategy

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

二、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物理名称命名策略

有两个配置值:

 默认为SpringPhysicalNamingStrategy

    #直接映射,不会做过多的处理
    org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
    #表名,字段为小写,当有大写字母的时候会添加下划线分隔符号
    org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy

 

Hibernate数据库配置项中命名策略说明

原文:https://www.cnblogs.com/zouhong/p/13406643.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!