当前位置: 首页 > 知识库问答 >
问题:

我试图在Spring在Redis上实现multiGet操作,它给我带来了一个错误

魏岳
2023-03-14

我试图在Redis上执行Spring中的multiGet函数。这让我犯了个错误。我已经成功实现了get函数,但在实现multiGet时,它要求我将集合作为第二个参数。我不知道该进什么?有人能带我来吗。

这是我的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函数的代码:

@GetMapping("Map/Get/{id}")
public User allGet(@PathVariable("id") final String id) {
 // Get function
    return userRepository.findById(id);
}

共有1个答案

罗茂实
2023-03-14

对于multiGet,第二个参数应该是一个集合,就像一个列表(如果希望列表的值作为结果返回到与它们在输入列表中所属键相同的位置)或一个集合

在您的示例中,可能是这样的:

List<Object> values = hashOperations.multiGet("USER", Arrays.asList("id", "name")); 
Object id = values.get(0);
Object name = values.get(1);
 类似资料: