【问题标题】:JAVA - Cassandra ERROR - Codec not found for requested operationJAVA - Cassandra 错误 - 未找到请求操作的编解码器
【发布时间】:2018-10-18 08:22:23
【问题描述】:

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

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)
}

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

【问题讨论】:

    标签: java spring rest kotlin cassandra


    【解决方案1】:

    您的控制器中的 return 似乎有问题。

    请你试试这样好吗?

    有趣的 getAllDatabasesId(): 列表 = databaseService.allDatabasesId()

    【讨论】:

    • 我不知道发生了什么,但即使没有任何更改它也开始工作:D
    猜你喜欢
    • 2018-06-08
    • 2017-03-24
    • 2019-01-03
    • 2017-02-16
    • 2019-05-27
    • 2017-04-07
    • 2018-01-06
    • 2019-09-30
    • 2020-10-22
    相关资源
    最近更新 更多