2

在我的休眠配置文件中使用它:

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

4

3 回答 3

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 工作,应该工作。

于 2012-10-09T07:56:13.737 回答
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>
于 2013-07-31T15:25:49.903 回答
3

希望下面提到的链接能引起一些想法。

链接 1链接 2

于 2012-10-08T14:01:13.823 回答