如何使Hibernate Spring Repository返回HashMap

Pau*_*aul 11 java spring hibernate

通常我们将查询编写为

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

lgd*_*lgd 3

你看过这个帖子吗?

另外,在这次尝试中,您仍在寻找列表

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

您是否尝试更改签名?