繁体   English   中英

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

[英]JAVA - Cassandra ERROR - Codec not found for requested operation

我想获取所有数据库的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)
}

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

您的Controller中的return似乎有问题。

你能试一下这样的东西吗?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM