相关疑难解决方法(0)

将Set <Map.Entry <K,V >>转换为HashMap <K,V>

在我的代码中,我Set<Map.Entry<K, V>>从地图创建了一个.现在我想重新创建相同的地图表单,所以我想将其HashSet<Map.Entry<K, V>>转换为HashMap<K, V>.Java是否有本机调用,或者我是否必须遍历set元素并手动构建映射?

java map set

27
推荐指数
6
解决办法
5万
查看次数

JPA 2.0本机查询结果为map

我运行JPA 2.0本机查询,如下所示:

Query query = em.createNativeQuery("SELECT NAME, SURNAME, AGE FROM PERSON");
List list = query.getResultList();
Run Code Online (Sandbox Code Playgroud)

现在list拥有查询返回的所有行.我可以迭代它们,但每个条目都在Object[]哪里:

  • 在索引0我找到了NAME
  • 在索引1处,我找到了SURNAME
  • 在索引3我找到了AGE

有没有人找到办法做这样的事情:

Map<String, Object> row = list.get(index);
String name = row.get("NAME");
String surname = row.get("SURNAME");
Integer age = row.get("AGE");
Run Code Online (Sandbox Code Playgroud)

我需要这个,因为我执行的本机查询是动态的,我不知道SELECT子句中字段的顺序,所以我不知道id的查询将如下所示:

SELECT SURNAME, NAME, AGE FROM PERSON
Run Code Online (Sandbox Code Playgroud)

要么

SELECT AGE, NAME, SURNAME FROM PERSON
Run Code Online (Sandbox Code Playgroud)

甚至

SELECT AGE, SURNAME, NAME FROM PERSON
Run Code Online (Sandbox Code Playgroud)

jpa native

23
推荐指数
2
解决办法
5万
查看次数

如何使Hibernate Spring Repository返回HashMap

通常我们将查询编写为

@Query("SELECT a FROM Foo a WHERE a.someId = :id")
Map<Long, Foo> findAllBySomeId(Long id)
Run Code Online (Sandbox Code Playgroud)

有没有办法让HashMap而不是List.
我想要Hashmap的key = someId和Value为Foo的键.

我试过这样的

@Query("SELECT new map (a.someId, a) FROM Foo a WHERE a.someId = :id")
Map<Long, Foo> findAllBySomeIdAsMap(Long id);
Run Code Online (Sandbox Code Playgroud)

但它返回了两个项目,但a.someId为Value,键为0;

0=someId
1=Foo
Run Code Online (Sandbox Code Playgroud)

java spring hibernate

11
推荐指数
1
解决办法
7799
查看次数

如何在jpql jpa中返回具有多个总和的映射?

这是我的查询

select SUM(d.day) as totalDay, SUM(d.month) as totalMonth from record d where d.userId = ?1
Integer getRecod(Long id);
Run Code Online (Sandbox Code Playgroud)

由于查询未返回整数,因此发生错误。我应该用整数替换什么?

java jpa jpql spring-boot

2
推荐指数
1
解决办法
1302
查看次数

标签 统计

java ×3

jpa ×2

hibernate ×1

jpql ×1

map ×1

native ×1

set ×1

spring ×1

spring-boot ×1