我用的是struts + spring + hibernate
语句如下
Query q = session.createQuery("From TestQuestion t where t.teacherID="+teacherID);
注意:查询的条件不是外键时正常可以查询出内容,查询条件是teacherID时报如下啊错误
Exception in thread "main" org.springframework.orm.hibernate3.HibernateQueryException: could not resolve property: teacherID of: com.school.pojo.TestQuestion [From com.school.pojo.TestQuestion t where t.teacherID=67]; nested exception is org.hibernate.QueryException: could not resolve property: teacherID of: com.school.pojo.TestQuestion [From com.school.pojo.TestQuestion t where t.teacherID=67]
Caused by: org.hibernate.QueryException: could not resolve property: teacherID of: com.school.pojo.TestQuestion [From com.school.pojo.TestQuestion t where t.teacherID=67]
at org.hibernate.persister.entity.AbstractPropertyMapping.throwPropertyException(AbstractPropertyMapping.java:43)
at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:37)
at org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:1265)
at org.hibernate.hql.ast.tree.FromElementType.getPropertyType(FromElementType.java:279)
at org.hibernate.hql.ast.tree.FromElement.getPropertyType(FromElement.java:372)
at org.hibernate.hql.ast.tree.DotNode.getDataType(DotNode.java:539)
at org.hibernate.hql.ast.tree.DotNode.prepareLhs(DotNode.java:221)
at org.hibernate.hql.ast.tree.DotNode.resolve(DotNode.java:172)
at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:94)
at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:90)
at org.hibernate.hql.ast.HqlSqlWalker.resolve(HqlSqlWalker.java:725)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1215)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4032)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3518)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1758)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:776)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:577)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:218)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:158)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:109)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:75)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.orm.hibernate3.HibernateTemplate$CloseSuppressingInvocationHandler.invoke(HibernateTemplate.java:1202)
at $Proxy15.createQuery(Unknown Source)
at com.school.daoImpl.TestQuestionDaoImpl$1.doInHibernate(TestQuestionDaoImpl.java:94)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372)
at org.springframework.orm.hibernate3.HibernateTemplate.executeFind(HibernateTemplate.java:342)
at com.school.daoImpl.TestQuestionDaoImpl.getTheTeacherTestQuestion(TestQuestionDaoImpl.java:89)
at com.school.serviceImpl.TestQuestionServicesImpl.getTheTeacherTestQuestion(TestQuestionServicesImpl.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy10.getTheTeacherTestQuestion(Unknown Source)
at Test.ObjectTest.main(ObjectTest.java:14)
帮帮忙啊.............

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【myair2006】截止到2008-06-24 13:54:19的历史汇总数据(不包括此帖):
    发帖数:16                 发帖分:380                
    结贴数:10                 结贴分:180                
    未结数:6                  未结分:200                
    结贴率:62.50 %            结分率:47.37 %            
    楼主加油
      

  2.   

    你的com.school.pojo.TestQuestion没有teacherID这个属性吧
      

  3.   

    could not resolve property: teacherID of: com.school.pojo.TestQuestion 
    从这个异常提示来看,你的TestQuestion 类的teacherID字段没有映射或映射错误。
    检查一下你的映射文件吧
      

  4.   

    映射文件里面没有匹配的teacherID
      

  5.   

    com.school.pojo.TestQuestion没有teacherID这个属性或者映射错了
      

  6.   

    在TestQuestion中是否还有个teacher属性,找到你的teacherId在哪个里
    试试From TestQuestion t where t.TestQuestion中包含teacherId的属性.teacherID="+teacherID
      

  7.   

    类中的属性
    /**出题教师*/
    private Teacher teacher ;
    配置文件
    <many-to-one name="teacher" column="teacherId" />
    表中存在TEACHERID字段