我有以下查询
@Query("SELECT g.id as name FROM Group g")
List<Group> findGroups(Map<Long, String> groupNameMap)
我只有实体Group的id。我想使用groupNameMap将id映射到名称。我想做如下的事情
@Query("SELECT :groupNameMap[g.id] as name FROM Group g")
List<Group> findGroups(Map<Long, String> groupNameMap)
以便返回组名列表而不是id。这能实现吗?
您可以简单地将其实现为一个新方法:
@Query("SELECT g.id as name FROM Group g")
List<Long> findGroups();
default List<Group> findGroups(Map<Long, String> groupNameMap) {
return findGroups().stream()
.map(id -> new Group(groupNameMap.get(id)))
.collect(toList());
}