在我的休眠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))
答案 0 :(得分:4)
以编程方式设置hibernate.ejb.naming_strategy
。
configuration.setNamingStrategy(ImprovedNamingStrategy.INSTANCE);
仍然想知道为什么它不能用于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)