我正在使用 hibernate 来获得这样的结果,
项目 ID - 123、111、134
计数 - 2 , 5 ,6
这是我的 Dao 层 -
@Query("SELECT project_id,COUNT(*) FROM lead_master WHERE vendor_id = ?1 and source = 'share' group by project_id ")
List<Map<String,Object>> getProjectLead(userId);
输出 - 我想要 map 列表,其中 project_id 应该是键,计数应该是与该键关联的对象。所以它会像 -
123 - 2
111 - 5
134 - 6
最佳答案
您可以使用 ResultTransformer
来实现:
(List<Map<String, Object>>) entityManager.createNativeQuery(
"SELECT project_id, COUNT(*) FROM lead_master WHERE vendor_id = :userId and source = 'share' group by project_id "
)
.setParameter("userId", userId)
.unwrap(org.hibernate.query.Query.class)
.setResultTransformer(
new ResultTransformer() {
@Override
public Object transformTuple(Object[] tuple, String[] aliases) { // 2.
return new HashMap.of((String) tuple[0], tuple[1]);
}
@Override
public List transformList(List collection) {
return collection;
}
}
)
.getResultList();
关于java - 如何从Hibernate的结果集中获取List<Map<String,Object>>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59877144/