我们目前正在基于命名 JPA 查询返回的两个字段手动构建 Map
,因为 JPA 2.1只提供了 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多个结果。
任何构建 Map 而不需要手动迭代的想法。
(我正在使用 OpenJPA,而不是休眠)