当我在createQuery()之后使用Hibernate(HQL)的list()时,我想直接输入List<Object[]>
到我的List<POJO class>
。我在这里描述我的实际情况。我有3个普通的旧Java对象说人,操作和项目和一个表说交易与外部引用个人,操作和项目。hibernate HQL createQuery()list()类型直接转换为模型
class Person {
String name;
// getters and setters
}
class Operation {
String name;
// getters and setters
}
class Project {
String name;
// getters and setters
}
class Transaction {
String p_id;
String o_id;
String project_id;
// refers to id of All three table above
}
现在,我想执行一个Hibernate查询语言查询说 String query="select p.name, o.name, project.name from Person p , Operation o, Project project , Transaction t where p.id=2 and p.id=t.p_id and o.id=t.o_id and project.id=t.project_id"
。
我已经创建了一个模型类来输出这个查询,说POP_Model。
private class POP_Model {
String person_name;
String operation_name;
String project_name;
}
现在,我要使用Hibernate查询:
Session session=HibernateConnection.getSessionFactory().openSession();
Query q=session.createQuery(query);
List<POP_Model> list=(List<POP_Model>)q.list();
它给类型转换错误,说对象[]不能被转换为POP_Model。我检查了TypedQuery,但没有得到它的例子。但据我所知,TypedQuery可以用来映射到POJO而不是Model。我想直接输入到模型。
更好地解决问题的方法之一是切换到标准API。 – 2013-03-11 13:16:12
“Criteria Api”是指?你可以参考它的任何链接。 – Misha 2013-03-11 13:19:51