如何在Hibernate中使用投影获得POJO响应?

时间:2013-08-02 11:01:53

标签: hibernate

我有一个类Student,它与Department类具有一对多的依赖关系。

class Student{
    String name;
    int age;

    @OneToMany
    List<Department> departments;

    //all getter setters here
}

这是Department类:

class Department{
    String depName;
    String address;
    //all getters and setters.
}

我正在使用Hibernate从数据库中获取结果。

我想从name获得ageStudent,从depName获得Department

截至目前,我正在使用此查询:

Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Student.class).createAlias("department", "department");
criteria.setResultTransformer(Transformers.aliasToBean(Student.class));

List<Student> rows = (List<Student>)criteria.list();

如果我尝试访问某些操作的rows元素,那么它会抛出

  

ClassCastException:java.lang.long或java.lang.string无法强制转换为com.model.Student

请告诉我如何获取学生POJO以回应上述查询。

1 个答案:

答案 0 :(得分:0)

至少你有错误

sessionFactory.getCurrentSession().createCriteria(Student.class).createAlias("departments", "departments");
根据您的映射,

departments应该与S匹配。