如何强制hibernate生成数据库模式,以便将CamelCase转换为Underscores(使用HBM)?例如。我有:休眠时使用下划线生成列和表名称
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cz.csas.pdb.be.model.product.passive">
<class name="foo.BarBaz">
<id name="barBazId">
<generator class="sequence"/>
</id>
<property name="extractContactType"/>
<!-- ... -->
</class>
</hibernate-mapping>
而且我想冬眠创建表像这样(甲骨文):
CREATE TABLE "BAR_BAZ"
(
"BAR_BAZ_ID" NUMBER(19,0) NOT NULL ENABLE,
"EXTRACT_CONTACT_TYPE" VARCHAR2(512 CHAR),
-- PK etc...
)
我知道我可以在hbm.xml文件中使用的表/列名,但我想全局设置(既节省时间又防止错误)。
它看起来像它应该工作正常,但我得到一个异常 产生的原因:org.hibernate.MappingException:通过不同的物理那些引用相同的逻辑列名:account_charge.PASSIVEACCOUNT =>“passive_account”和“passiveaccount”; 对于简单的多对一(accountCharge HBM具有“<多对一名称=”passiveAccount“/>”)。 – 2011-03-09 10:24:02