您的位置:首页 > 产品设计 > UI/UE

org.hibernate.QueryException: could not resolve property:xxxxxid 外键查询 hibernate

2016-02-03 15:02 621 查看
转载:http://zhidao.baidu.com/link?url=IqxAQMkf0qRbYNqKKmjLLZ_zSZOQf-RGJ5lmokc04VDLDQJWS1MP14lFnevGB2rCS0WtifXaAAcqRmEqNY8tHq

我有两张表:Teacher id(主键) name 
            Student id(主键) name tid(外键对应Teacher的id)

public List findStudentByTeacher(Teacher teacher) {
  try {
   session = this.openSession();
   String HQL = "select s.name from Student as s where s.tid ="+teacher.getId();
   query = session.createQuery(HQL);
   return query.list();
  } catch (Exception e) {
   e.printStackTrace();
   logs.error("查询学生时候出现错误!");
   return null;
  }finally{
   this.closeSession(session);
  }
 }
调用时出现异常:
org.hibernate.QueryException: could not resolve property: tid of: com.accp.hibernate.po.Student [select s.name from com.accp.hibernate.po.Student as s where s.tid =2]
 at org.hibernate.persister.entity.AbstractPropertyMapping.throwPropertyException(AbstractPropertyMapping.java:43)
 at 
...
...
2008-11-04 16:57:10,203 [com.accp.hibernate.dao.BusinessDAOimpt]-[ERROR] 查询学生时候出现错误!
我tid为2的学生有很多 为什么??
请问要配置什么?还是HQL语句写的有问题?

能改吗?
在那里能改?
是
 <many-to-one name="teacher" class="com.accp.hibernate.po.Teacher" fetch="select">
            <column name="tid" not-null="true" />
        </many-to-one>


改为:String HQL = "select s.name from Student as s where s.teacher.id ="+teacher.getId();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: