当我在 createQuery() 之后使用 Hibernate (HQL) 的 list() 时,我想直接将类型List<Object[]>
转换为我的List<POJO class>
. 我在这里描述我的实际情况。我有 3 个普通的旧 Java 对象说 Person、Operation 和 Project,还有一个表说 Transaction,其中包含对 Person、Operation 和 Project 的外部引用。
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 Query Language 查询说
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();
它给出了类型转换错误,说 Object[] 无法转换为 POP_Model。我检查了 TypedQuery 但没有得到它的示例。但据我所知,TypedQuery 可以用来映射到 POJO 而不是 Model。我想直接将类型转换为模型。