Hibernate配置组件映射出错!可能是因为namingStrategy,求解答!

这是我的配置

 <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中的**小数点**替换成**下划线**。但是不清楚这样做是否有风险。是否还有其他的解决方案?

http://blog.csdn.net/jialinqiang/article/details/8706555

这个是你数据库里没有的表,要新建?貌似有这么一句代码:

    该配置是用来让hibernate自动生成表以及序列 
    create:每次操作都重新创建表
    update:没有表则创建,有表继续使用

    <property name="hbm2ddl.auto">update</property>