Hibernate之注解表的命名策略

    xiaoxiao2021-12-14  28

    对于hibernate注解实体中属性对应数据库表的列名,怎么命名的问题,我们肯定不愿一个个属性去配置吧

    在applicationContext.xml中的sessionFactory中配置

    <property name="namingStrategy"> <bean class="org.hibernate.cfg.ImprovedNamingStrategy"></bean> </property>

    Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'namingStrategy' of bean class [org.springframework.orm.hibernate5.LocalSessionFactoryBean]: Bean property 'namingStrategy' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?

    原来是Hibernate5.1相关配置变了。

    参考:http://412887952-qq-com.iteye.com/blog/2315686

    参考:http://stackoverflow.com/questions/32165694/spring-hibernate-5-naming-strategy-configuration

    hibernate.ejb.naming_strategy将不再被支持,而是被替换成了两个属性: hibernate.physical_naming_strategy hibernate.implicit_naming_strategy

    对于physical_naming_strategy有两个常用的配置:

    org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

    对于PhysicalNamingStrategyStandardImplDefaultNamingStrategy的效果,对于SpringPhysicalNamingStrategyImprovedNamingStrategy的效果。

    在sessionFactory的bean里配置

    <property name="PhysicalNamingStrategy"> <bean class="org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl"></bean> </property>

    和在sessionFactory bean的hibernateProperties property中配置

    <prop key="hibernate.physical_naming_strategy">org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl</prop>

    是一样的。

    org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy不在hibernate的jar包中先不去看。

    <property name="ImplicitNamingStrategy"> <bean class="org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyHbmImpl" /> </property>和

    <prop key="hibernate.implicit_naming_strategy">org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyHbmImpl</prop>是一样的。

    至于它们分别的命名方式并没看出有什么不一样,继续往下吧。

     
    转载请注明原文地址: https://ju.6miu.com/read-969551.html

    最新回复(0)