我想获取所有数据库的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)
}
有人可以帮助我解决这个问题吗?
答案 0 :(得分:0)
您的控制器中的退货似乎有误。
可以请你这样尝试吗?
好玩的getAllDatabasesId():列表= databaseService.allDatabasesId()