=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