Java – iterates the results in the list object returned by the hibernate query
•
Java
I have hibernate query as follows:
String MysqL = "SELECT S.col1,S.col2,T.col3,T.col4,T.col5
FROM myTable S,myTable1 T
WHERE S.id = :id and S.id = T.id";
Query myQuery = this.em.createQuery(MysqL);
myQuery.setParameter("id","123");
List<Object> result = myQuery.getResultList();
Tables mytable and mytable1 are entity classes
Myto is a simple java class with attributes col1, col2, col3, col4, col5
The results of the above query should be mapped to the properties of myto
How do I iterate over the columns in the results? Or do I retrieve the results incorrectly?
Solution
It appears that you are trying to query a subset of the table's columns To do this, you can use this example in Hibernate documentation:
Iterator kittensAndMothers = sess.createQuery(
"select kitten,mother from Cat kitten join kitten.mother mother")
.list()
.iterator();
while ( kittensAndMothers.hasNext() ) {
Object[] tuple = (Object[]) kittensAndMothers.next();
Cat kitten = (Cat) tuple[0];
Cat mother = (Cat) tuple[1];
....
}
If you have no problem retrieving the entire entity (or at least its first level simple attributes), you can use:
List<Cat> cats = session.createQuery(
"from Cat where cat.name = ?")
.setString(0,name)
.list();
for ( Cat cat : cats ) {
Cat mother = cat.getMother();
...
}
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码
