How to return Map<Key, Value> with Hibernate\HQL
14,925
Yes, for example:
Select new Map(r.id,r) FROM Rank r
But that will return a list of Maps. You should take a look here to understand better.
Edit: To explain better, the return will be something like this:
List<Map<Long, Rank>> ranks = (List<Map<Long, Rank>>) session.createQuery("select new Map<r.rankId,r> FROM Rank r").list();
It is one Map for each record. To put all in only one map, unfortunately, it has to be manually:
List<Rank> ranks = (List<Rank>) session.createQuery("select new r FROM Rank r").list();
Map<Long, Rank> mapRanks = new HashMap<Long, Rank>();
for (Rank rank : ranks) {
if (!map.contains(rank.getId()) {
map.put(rank.getId(), rank);
}
}
Author by
Shvalb
Updated on June 04, 2022Comments
-
Shvalb almost 2 years
I have an entry as follow:
@Entity @Table(name="rank") class Rank implements Serializable { private int id; private int rank_id; private date creationDate; ... // getters\setters... }
I would like to query this table and put the results into a HashMap! as follow:
Map<Integer, Rank> = session.createSQL("select new map...").list();
Is this possible to put the entity as the value of the map?
Can I get a code example?
-
Shvalb almost 9 yearsTHANKS. I will take another look at this link.
-
Shvalb almost 9 yearsDo you mean something like this? Map<Long, Rank> ranks = (Map<Long, Rank>) session.createSQLQuery("select new Map<r.rankId,r> FROM Rank r").list();