我试图在Redis上的Spring中实现multiGet操作,它抛出了一个错误

时间:2018-02-16 23:32:09

标签: redis spring-data-redis

我正在尝试在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);
}

1 个答案:

答案 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);