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


    ===================================================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

  • 相关阅读:
    处理接口返回script标签对
    跨域问题总结
    CordMirror 在线代码编辑器
    解决IOS移动端 new Date 为 Invalid Date bug
    大屏数据可视化
    Xcode清理缓存
    ArrayMap和HashMap区别
    javacript总结
    css总结
    html总结
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/7910474.html
Copyright © 2020-2023  润新知