List students = session.createQuery("select s.name from Student s where s.name like '%1%'").list();
可以正常运行
List students = session.createQuery("select s.name from Student s where s.classes.name like '%1%'").list();
报错  org.hibernate.QueryException: could not resolve property: classes of
------------------------------------------------------------------
public class Student {

public Student() {

}

public Student(int id, String name) {
this.id = id;[code=XML]
this.name = name;
}

private int id;
private String name;
private Date createDate;
private Classes classes;

public Classes getClasses() {
return classes;
}
public void setClasses(Classes classes) {
this.classes = classes;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id; 
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}}[/code]<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping >
<class name="com.byz.hibernate.Student" table="t_student">
<id name="id">
<generator class="native"/>
</id>
<property name="name" />
<property name="createDate"/>
<many-to-one name="Classes" column="cid"/>
</class>
</hibernate-mapping>------------------------------------------------------------------package com.byz.hibernate;import java.util.Set;public class Classes {

private int id;
private String name;
private Set<Student> students;

public Set<Student> getStudents() {
return students;
}
public void setStudents(Set<Student> students) {
this.students = students;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}}
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.byz.hibernate" >
<class name="Classes" table="t_classes">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<set name="students" inverse="true" cascade="all">
<key column="cid"/>
<one-to-many class="Student"/>
</set>
</class>
</hibernate-mapping>--------------------------------------------------------

解决方案 »

  1.   

    List students = session.createQuery("select s.name from Student s where s.name like '%1%'").list(); 
    可以正常运行 
    List students = session.createQuery("select s.name from Student s where s.classes.name like '%1%'").list(); 
    报错  org.hibernate.QueryException: could not resolve property: classes of 各位请帮帮忙,谢谢!! public class Student {
        
    public Student() {
            
    }
        
    public Student(int id, String name) {
    this.id = id;this.name = name; 
    } private int id; 
    private String name; 
    private Date createDate; 
    private Classes classes; public Classes getClasses() { 
    return classes; 

    public void setClasses(Classes classes) { 
    this.classes = classes; 

    public int getId() { 
    return id; 

    public void setId(int id) { 
    this.id = id; 

    public String getName() { 
    return name; 

    public void setName(String name) { 
    this.name = name; 
    } public Date getCreateDate() { 
    return createDate; 

    public void setCreateDate(Date createDate) { 
    this.createDate = createDate; 
    } }
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC 
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping >
    <class name="com.byz.hibernate.Student" table="t_student">
    <id name="id">
    <generator class="native"/>
    </id>
    <property name="name" />
    <property name="createDate"/>
    <many-to-one name="Classes" column="cid"/>
    </class>    
    </hibernate-mapping>package com.byz.hibernate;import java.util.Set;public class Classes {
        
        private int id;
        private String name;
        private Set<Student> students;
        
        public Set<Student> getStudents() {
            return students;
        }
        public void setStudents(Set<Student> students) {
            this.students = students;
        }
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }}
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC 
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="com.byz.hibernate" >
    <class name="Classes" table="t_classes">
    <id name="id">
    <generator class="native"/>
    </id>
    <property name="name"/>
    <set name="students" inverse="true" cascade="all">
    <key column="cid"/>
    <one-to-many class="Student"/>
    </set>
    </class>    
    </hibernate-mapping>
      

  2.   

    报错信息说属性有问题,仔细检查s.classes.name
    应该就是classes这里的错误。
      

  3.   

    我知道是classes的错误,但是找了很久也找不到原因
      

  4.   


    <one-to-many class="Student"/>把包名写上试试。