代码
public class Student
{private School school;}student的hbm配置文件<many-to-one column="schoolid" cascade="none" access="field" class="com.school.entity.School" lazy="false" name="school"/>schoolid是外键目的是查询某一个学校的学员。
Expression.eq("school.id", school.getId());
这样的代码生成的sql是where this_.schoolid=123;如果用学校名称来查,
比如Expression.like("school.name", "%abc%");就提示找不到name属性
org.hibernate.QueryException: could not resolve property: school.name of: com.school.entity.Student

解决方案 »

  1.   

    lazy="false"改成true或别的值看看
      

  2.   

    简单点直接用
    createSQLQuery("标准的sql语句")
      

  3.   

    多v1 和1v多一样,关连查询需要创建关联,否则只能是单表查询,楼主没有认真看hibernate自带的帮助文档你可以这样来写:session.createCriteria(Student.class).createAlias("school", "s")条件:Expression.eq("s.name", school.getName()); ......