В настоящее время мы создаем карту вручную на основе двух полей, возвращаемых именованным запросом, поскольку JPA предоставляет только getResultList().
@NamedQuery{name="myQuery",query="select c.name, c.number from Client c"}
HashMap<Long,String> myMap = new HashMap<Long,String>();
for(Client c: em.createNamedQuery("myQuery").getResultList() ){
myMap.put(c.getNumber, c.getName);
}
Но я чувствую, что пользовательский сопоставитель или аналогичный будет более результативным, так как этот список может быть легко достигнут 30 000 результатов.
Любые идеи по созданию карты без повторения вручную.
(Я использую OpenJPA, а не hibernate)