could not resolve property: qid of: org.lxh.myzngt.vo.Answer

错误信息:

org.hibernate.QueryException: could not resolve property: qid of: org.lxh.myzngt.vo.Answer

 [SELECT COUNT(q.qid) FROM org.lxh.myzngt.vo.Question AS q WHERE q.qid IN (SELECT a.qid FROM org.lxh.myzngt.vo.Answer AS a WHERE a.userid=?)]

 

 

解决方法:初看之下以为是Action出错,读取不出总记录数allRecorders。后来又以为是sql语句错误,但是检查过了是没有错的。

最后发现是错在映射文件Answer.hbm.xml中;

原映射文件如下:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
    Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
    <class name="org.lxh.myzngt.vo.Answer" table="answer">
        <id name="aid" type="java.lang.Integer">
            <column name="aid" />
            <generator class="native" />
        </id>
        <many-to-one name="question" class="org.lxh.myzngt.vo.Question"
          fetch="select">
         <column name="qid" />
        </many-to-one>
        <property name="quesans" type="java.lang.String">
            <column name="quesans" length="50" />
        </property>
        <property name="userid" type="java.lang.String">
            <column name="userid" length="50" />
        </property>
        <property name="grade" type="java.lang.String">
            <column name="grade" length="50" />
        </property>
        <property name="anstime" type="java.util.Date">
            <column name="anstime" length="19" />
        </property>
        <property name="status" type="java.lang.Integer">
            <column name="status" />
        </property>
                   </class>
</hibernate-mapping>

 

 

后来只需要再加多一个属性

<property name="qid" type="java.lang.Integer">
            <column name="qid" />
        </property>
即可解决。

 

中间会出现如下错误:

org.hibernate.MappingException: Repeated column in mapping for entity: org.lxh.myzngt.vo.Answer column: qid (should be mapped with insert="false" update="false")
只需根据错误提示在fetch="select" 前面加上insert="false" update="false"就一切OK啦。

 

纠结了好久的。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值