是这样的,
如果你不写对象名称,直接写字段,那么hibernate就按照数据库字段进行查找如果你写 (对象名.对象属性),那么hibernate就按照ormapping中的映射字段进行查找这是hibernate的灵活之处!!
hql2:修改位  sql = " from VSubjects as V  where V.fkExamName = ? order by V.cnumber, V.mnumber desc";( fkExamName为 ormapping中的 属性名称 )

解决方案 »

  1.   

    楼上的兄弟,你说的加别名,然后用别名.对象属性,我前面就试过了。。通不过的。
    下面是错误,无法识别属性,,你看到我的hql没有,我前面是对象名,后面的是数据库视图的字段名,正常情况下写HQL,用的都是对象的属性啊。。
    org.springframework.orm.hibernate3.HibernateQueryException: could not resolve property: fkExamName of: com.ems.database.hibernate3.pojo.VExamSubjects [ from com.ems.database.hibernate3.pojo.VExamSubjects as v where v.fkExamName = ? order by cnumber, mnumber desc]; nested exception is org.hibernate.QueryException: could not resolve property: fkExamName of: com.ems.database.hibernate3.pojo.VExamSubjects [ from com.ems.database.hibernate3.pojo.VExamSubjects as v where v.fkExamName = ? order by cnumber, mnumber desc]
    org.hibernate.QueryException: could not resolve property: fkExamName of: com.ems.database.hibernate3.pojo.VExamSubjects [ from com.ems.database.hibernate3.pojo.VExamSubjects as v where v.fkExamName = ? order by cnumber, mnumber desc]
    ...
      

  2.   

    not resolve property: fkExamName 
    检查一下个有关找个属性得 配置,还有它得get,set方法
      

  3.   

    看看你的ormaping中的文件VSubjects .hbm.xml 字段的名字 是什么啊,就是什么
    对应的pojo类的get set方法也要有对应!
      

  4.   

    这个大家放心,我都检查过了,,在pojo类中确实是fkExamName,而且也有get/set方法。
      

  5.   

    搞不懂的是
    hql1:
      sql = " from VSubjects  where fk_Exam_Name = ? order by cnumber, mnumber desc";
    用视图字段名是可以的fk_Exam_Name。。??为什么
      

  6.   

    把你的 对应的 .hbm.xml 文件发上了看看
      

  7.   

    把你的 对应的 .hbm.xml 文件发上了看看
      

  8.   

    <?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="com.ems.database.hibernate3.pojo.VSubjects" table="V_SUBJECTS" schema="EMS">
            <composite-id name="id" class="com.ems.database.hibernate3.pojo.VSubjectsId">
                <key-property name="classpk" type="string">
                    <column name="CLASSPK" length="32" />
                </key-property>
                <key-property name="name" type="string">
                    <column name="NAME" length="50" />
                </key-property>
                <key-property name="pk" type="string">
                    <column name="PK" length="32" />
                </key-property>
                <key-property name="fkExamName" type="string">
                    <column name="FK_EXAM_NAME" length="32" />
                </key-property>
                <key-property name="subject" type="string">
                    <column name="SUBJECT" length="50" />
                </key-property>
                <key-property name="fkSetPaperTeacher" type="string">
                    <column name="FK_SET_PAPER_TEACHER" length="32" />
                </key-property>
                <key-property name="isntUnifiedSubject" type="string">
                    <column name="ISNT_UNIFIED_SUBJECT" length="4" />
                </key-property>
                <key-property name="subjectAlias" type="string">
                    <column name="SUBJECT_ALIAS" length="50" />
                </key-property>
                <key-property name="cnumber" type="long">
                    <column name="CNUMBER" precision="22" scale="0" />
                </key-property>
                <key-property name="unumber" type="long">
                    <column name="UNUMBER" precision="22" scale="0" />
                </key-property>
                <key-property name="mnumber" type="long">
                    <column name="MNUMBER" precision="22" scale="0" />
                </key-property>
                <key-property name="nnumber" type="long">
                    <column name="NNUMBER" precision="22" scale="0" />
                </key-property>
            </composite-id>
        </class>
    </hibernate-mapping>
      

  9.   

    com.ems.database.hibernate3.pojo.VExamSubjects
      

  10.   

    表没有主键,所有的字段都被藏到你的XXXId.java里面了...建个主键重新生成下hbm
      

  11.   

    问题是冒解决,可能这问题太难,或者真正了解Hibernate的人很少。。
      

  12.   

    <composite-id>标签是作为联合标识符,也相当于<id>标签的作用,那这个标签里的属性也就被Hibernate理解为是联合主键,你要通过对象属性进行查询,就会报not resolve property的错误,这不是Hibernate的Bug。