Pio*_*ski 16 java hibernate jpa entitymanager jpa-2.0
我如何获得自定义对象列表,如查询下面的结果:
SELECT p.category.id, count(p.id) FROM Product p left join p.category c WHERE p.seller.id=:id GROUP BY c.id
Run Code Online (Sandbox Code Playgroud)
举例:
return getEntityManager().createQuery("SELECT p.category.id, count(p.id) FROM Product p left join p.category c WHERE p.seller.id=:id GROUP BY c.id").setParameter("id", id).getResultList();
Run Code Online (Sandbox Code Playgroud)
我需要一张类别ID和类别中的产品数量的地图.
Dan*_*yMo 34
不幸的是,JPA没有提供检索结果的标准方法Map.但是,通过遍历结果列表手动构建地图非常简单:
TypedQuery<Object[]> q = getEntityManager().createQuery(
"SELECT c.id, count(p.id) " +
"FROM Product p LEFT JOIN p.category c " +
"WHERE p.seller.id = :id " +
"GROUP BY c.id", Object[].class).setParameter("id", id);
List<Object[]> resultList = q.getResultList();
Map<String, Long> resultMap = new HashMap<String, Long>(resultList.size());
for (Object[] result : resultList)
resultMap.put((String)result[0], (Long)result[1]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49838 次 |
| 最近记录: |