JAVA-Cassandra错误-找不到所需操作的编解码器

时间:2018-10-18 08:22:23

标签: java spring rest kotlin cassandra

我想获取所有数据库的ID。为此,我必须获取所有数据库,然后为每个数据库获取getId并将其添加到字符串列表(id为string)。但是毕竟我得到了错误:

Request processing failed; nested exception is com.datastax.driver.core.exceptions.CodecNotFoundException: 
  Codec not found for requested operation: [list<varchar> <-> java.util.Set<java.lang.String>]

这是我在dbrepository的查询:

@Query("SELECT * FROM db_params")
Result<Database> getAllDatabases();

提供ID列表的服务

    @Override
public List<String> getAllDatabasesId() {
    Result<Database> databaseResult = databaseRepository.getAllDatabases();
    List<String> listOfId = new ArrayList<>();
    for (Database database : databaseResult) {
        listOfId.add(database.getId());
    }
    return listOfId;
}

我不认为我在控制器上做错了什么,但这是:

    @GetMapping("/all-id")
fun getAllDatabasesId(): HttpEntity<List<String>> {
    val result = databaseService.allDatabasesId
    return ResponseEntity.ok(result)
}

有人可以帮助我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您的控制器中的退货似乎有误。

可以请你这样尝试吗?

  

好玩的getAllDatabasesId():列表=               databaseService.allDatabasesId()