qq_27658069 2015-09-08 03:29 采纳率: 100%
浏览 1566
已结题

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

  • 写回答

2条回答 默认 最新

  • devmiao 2015-09-08 14:21
    关注
    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?