这是我的配置
<hibernate-mapping package="com.test.domain" >
<class name="Company" table="Company" >
<id name="id" column="ID" >
<generator class="native"/>
</id>
<property name="name" column="NAME" />
<component name="address" class="Address">
<property name="province" />
<property name="city" />
</component>
<component name="regAddress" class="Address">
<property name="province" column="regProvince"/>
<property name="city" column="regCity"/>
</component>
</class>
</hibernate-mapping>
错误提示如下:
Unsuccessful: create table Company ……
Incorrect table name 'address'
好像是在创建Company表的时候,Address表还没有被创建。请问一下出现这种情况的原因是什么?
我想到一个原因。我设置了namingStrategy。会不会是命名策略上出的问题?
以下是重写的两个方法。
@Override
public String classToTableName(String className) {
return toDataBaseTableName(super.classToTableName(className));
}
@Override
public String propertyToColumnName(String propertyName) {
return toDatabaseName(propertyName);
}
toDatabaseName是自定义的方法。
请问是否还需要重写别的方法?
找到了一个解决方法,在propertyToColumnName方法中,将propertyName中的**小数点**替换成**下划线**。但是不清楚这样做是否有风险。是否还有其他的解决方案?