Hibernate ImprovedNamingStrategy无法正常工作

时间:2012-10-08 13:04:21

标签: java sql-server hibernate naming-conventions hbm2ddl

在我的休眠cfg中使用它:

<property name="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</property>
<property name="hibernate.hbm2ddl.auto">create</property>

这应该使我的所有表格和列snake_case都在数据库中。

但它只是让他们camelCase

可能是什么问题?

private String myName;

在我的数据库中它仍然是myName(varchar(255))

3 个答案:

答案 0 :(得分:4)

以编程方式设置hibernate.ejb.naming_strategy

configuration.setNamingStrategy(ImprovedNamingStrategy.INSTANCE);

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/session-configuration.html#configuration-programmatic

仍然想知道为什么它不能用于XML,应该可行。

答案 1 :(得分:4)

@Jaanus太匆忙拒绝@Renjith提供的链接

链接指出它在XML中工作但必须作为会话工厂的属性注入,如下面的XML代码提取中所示:


    <!-- object to relational mapping configuration -->
  <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="hibernateProperties">
        <property name="map">
          <map>
            <entry key="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />

            <entry key="hibernate.hbm2ddl.auto" value="validate" />

            <entry key="hibernate.connection.charSet" value="UTF-8" />

            <entry key="hibernate.show_sql" value="true" />
            <entry key="hibernate.jdbc.batch_size" value="0" />
          </map>
        </property>
    </property>
    <property name="namingStrategy">
      <bean class="org.hibernate.cfg.ImprovedNamingStrategy" />
    </property>
    <property name="dataSource" ref="dataSource" />
    ...
  </bean>

答案 2 :(得分:3)

希望下面提到的链接能够提出一些想法。

link 1link 2