當我在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