gpt4 book ai didi

java - 使用 JPA EntityManager 加入 play2 框架 - 结果集作为映射?

转载 作者:太空宇宙 更新时间:2023-11-04 12:20:41 24 4
gpt4 key购买 nike

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

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

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);

还有“神奇”函数,它手动将结果转换为 的 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;
}

关于java - 使用 JPA EntityManager 加入 play2 框架 - 结果集作为映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38879834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com