【hibernate】hibernate不同版本的命名策略

简介:  ===================================================hibernate 4命名策略如下=================================================spring.

 

 

===================================================hibernate 4命名策略如下=================================================

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

有两种值可以配置分别为:

第一:org.hibernate.cfg.DefaultNamingStrategy 
第二:org.hibernate.cfg.ImprovedNamingStrategy  
DefaultNamingStrategy这个直接映射,不会做过多的处理(前提没有设置@Table,@Column等属性的时候)。如果有@Column则以@Column为准  
ImprovedNamingStrategy 表名,字段为小写,当有大写字母的时候会转换为分隔符号“_”。  

参考地址:http://blog.csdn.net/linxingliang/article/details/52566896

 

===================================================hibernate 5 命名策略============================================

首先明确,上面的是hibernate4实体映射到数据表时候的命名策略。

在hibernate5之后,上面的作废。而是采用下面两个属性:

spring.jpa.hibernate.naming.implicit-strategy= # Hibernate 5 implicit naming strategy fully qualified name.
spring.jpa.hibernate.naming.physical-strategy= # Hibernate 5 physical naming strategy fully qualified name.

 

好了,分来开说,这两个属性分别怎么使用》》》》》

》》首先是physical-strategy:

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

它有两个值分别可以配置:

第一:org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
第二:org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy

效果分别如下:

 
 
org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl效果等同于:
  hibernate4中的DefaultNamingStrategy这个直接映射,不会做过多的处理(前提没有设置@Table,@Column等属性的时候)。如果有@Column则以@Column为准 【我采用这个命名策略】【多一句:对于关联关系的依旧会命名为user_id这种样子,看下图】
org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy效果等同于:
  hibernate4中的ImprovedNamingStrategy 表名,字段为小写,当有大写字母的时候会转换为分隔符号“_”。

 

》》接下来说implicit-strategy的使用情况:

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

它有如下的值可以配置:

 

第一:org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImp
第二:org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyHbmImpl

第三:
org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl
 

 

 效果分别如下:

====================================================

JPA2.0兼容的命名策略【默认】

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

 

==============================================================

 原始的Hibernate NamingStrategy【注意外键关联字段】

spring.jpa.hibernate.naming.implicit-strategy = org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyHbmImpl

========================================================

 遵循ImplicitNamingStrategyJpaCompliantImpl规则

spring.jpa.hibernate.naming.implicit-strategy = org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl

 

相关文章
|
2月前
|
缓存 NoSQL Java
揭秘性能提升的超级武器:掌握Hibernate二级缓存策略!
【9月更文挑战第3天】在软件开发中,性能优化至关重要。使用Hibernate进行数据持久化的应用可通过二级缓存提升数据访问速度。一级缓存随Session生命周期变化,而二级缓存是SessionFactory级别的全局缓存,能显著减少数据库访问次数,提高性能。要启用二级缓存,需在映射文件或实体类上添加相应配置。然而,并非所有场景都适合使用二级缓存,需根据业务需求和数据变更频率决定。此外,还可与EhCache、Redis等第三方缓存集成,进一步增强缓存效果。合理运用二级缓存策略,有助于大幅提升应用性能。
88 5
|
3月前
|
缓存 Java 数据库连接
Hibernate 中的获取策略有哪些?
【8月更文挑战第21天】
21 0
|
4月前
|
SQL 缓存 Java
使用Hibernate实现复杂数据库查询优化策略
使用Hibernate实现复杂数据库查询优化策略
|
4月前
|
SQL 缓存 Java
使用Hibernate实现复杂数据库查询优化策略
使用Hibernate实现复杂数据库查询优化策略
|
5月前
|
缓存 Java 数据库连接
构建高效数据库交互:Hibernate与JPA的性能优化策略
【6月更文挑战第25天】在大数据时代,优化Hibernate和JPA的数据库性能至关重要。本文探讨了优化策略:正确配置映射以减少冗余,利用JPQL/HQL提升查询效率,避免全字段选择,使用索引和分页,有效利用缓存策略,以及管理事务以平衡资源锁定。示例代码展示了分页查询的实现,以防止性能下降。
116 0
|
6月前
|
Java 数据库连接 数据库
Hibernate5中实体映射命名策略
Hibernate5中实体映射命名策略
134 0
|
6月前
|
SQL 缓存 Java
Hibernate - 检索策略入门与详解
Hibernate - 检索策略入门与详解
57 0
|
SQL Java 数据库连接
《Hibernate上课笔记》-----class8----Hibernate的检索方式和检索策略
《Hibernate上课笔记》-----class8----Hibernate的检索方式和检索策略
107 0
《Hibernate上课笔记》-----class8----Hibernate的检索方式和检索策略
|
存储 SQL Oracle
Hibernate-05-主键生成策略
Hibernate-05-主键生成策略
Hibernate-05-主键生成策略
|
SQL 缓存 Java
hibernate(八) Hibernate检索策略(类级别,关联级别,批量检索)详解
很多看起来很难的东西其实并不难,关键是看自己是否花费了时间和精力去看,如果一个东西你能看得懂,同样的,别人也能看得懂,体现不出和别人的差距,所以当你觉得自己看了很多书或者学了很多东西的时候,你要想想,你花费的也就那么一点时间,别人花你这么多时间也能够学到你所学到的东西,所以还是要继续努力。既然不是天才,唯有靠勤奋来弥补。
196 0