Quando uso list() di Hibernate (HQL) dopo createQuery(), allora voglio digitare direttamente cast List<Object[]>
sul mio List<POJO class>
. Descrivo il mio scenario attuale qui. Ho 3 Plain Old Java Objects dire Persona, Operation e Project e una tabella dice Transaction con riferimenti stranieri a Person, Operation e Project.Hibernate HQL createQuery() lista() cast per modellare direttamente
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
}
Ora, voglio eseguire una query di Hibernate Query Language dire 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"
.
Ho creato una classe Model per l'output di questa query, dice POP_Model.
private class POP_Model {
String person_name;
String operation_name;
String project_name;
}
Ora, voglio usare query di Hibernate:
Session session=HibernateConnection.getSessionFactory().openSession();
Query q=session.createQuery(query);
List<POP_Model> list=(List<POP_Model>)q.list();
Dà errore typecast dicendo Object [] non può essere convertito in POP_Model. Ho controllato TypedQuery ma non ho avuto un esempio per questo. Ma per quanto ne so, TypedQuery può essere usato per mappare a POJO non a Modello. Voglio digitare direttamente cast in Model.
Uno degli approcci per risolvere il problema è passare all'API dei criteri. –
"Criteri Api" significa? puoi fare riferimento a qualsiasi link per questo. – Misha