我正在尝试在Redis上的Spring中执行multiGet
函数。它给我一个错误。我已经成功实现了get
函数,但在实现multiGet
时,它要求我将Collection作为第二个参数。我不知道该怎么办?有人可以在这里指导我。
这是我的multiGet()
代码方法定义:
@Override
public User findById_MultiGet(String id) {
return (User)hashOperations.multiGet("USER", id);
}
控制器代码:
@GetMapping("Map/MultiGet/{id}")
public User allMultiGet(@PathVariable("id") final String id) {
// MultiGet function
return userRepository.findById_MultiGet(id);
}
以上multiget方法的错误是multiget(Object, Collection) type not (String,String) type
Get函数的代码正在运行。
public User findById(String id) {
return (User)hashOperations.get("USER", id);
}
Get in Controller for Get功能:
@GetMapping("Map/Get/{id}")
public User allGet(@PathVariable("id") final String id) {
// Get function
return userRepository.findById(id);
}
答案 0 :(得分:1)
对于multiGet
,第二个参数应该是Collection
,如List
(如果您希望将列表的值作为结果返回到与其所属键相同的位置输入列表)或Set
。
在你的例子中,这将是这样的:
List<Object> values = hashOperations.multiGet("USER", Arrays.asList("id", "name"));
Object id = values.get(0);
Object name = values.get(1);