使用 JPA EntityManager 加入 play2 框架 - ResultSet as Map?

Join in play2 framework with JPA EntityManager - ResultSet as Map?

我没有找到这个简单问题的解决方案:

如何在 play2 框架中连接两个表而不创建结果class?

EntityManager em = JPA.em();
Query q = em.createQuery("SELECT a.name, b.birthday FROM TABLE a JOIN TABLE b");
List<Object> l = q.getResultList();

json 映射器将这个 没有字段名 映射到:

[ {"name", "12/10/2016"}, {..} ]

如何获得最简单的方法:

[{ name:"name", birthday:"12/10/2016"}, {...} ]

也许有映射器?

同时我找到了这个解决方案,它只需要正确顺序的字段名称:

String[] fields = {"id","name","birthday","email"};
return resultToHashmap(q.getResultList(), fields);

和'magic'函数,手动将结果转换为.

的Hashmap
  private static List<Map<String, Object>> resultToHashmap(List<Object[]> resultList, String[] fieldNames ){

        List<Map<String, Object>> resultMap  = new ArrayList();
        for (Object[] result : resultList){
            HashMap<String,Object> row = new HashMap<String, Object>(result.length);
            for (int i=0;i<result.length;i++){
                row.put(fieldNames[i],result[i]);
            }
            resultMap.add(row);
        }
        return resultMap;
    }