Now*_*dia 1 cassandra spring-data-cassandra
有人可以指出我如何将声明的字段list<frozen<list<int>>>映射回 spring-data-cassandra 中的 java。我可以简单地保存数据,List<List<Integer>>>但在从数据库读取时不起作用,未找到编解码器异常弹出。
非常感谢帮助。
你的声明是正确的。但是对于嵌套集合读取,您需要创建自定义 RowMapper 以将行转换为 DTO。
例子 :
让我们有表 ctest
CREATE TABLE ctest (
id int PRIMARY KEY,
data list<frozen<list<int>>>
);
Run Code Online (Sandbox Code Playgroud)
和 DTO
public class CTest {
@PrimaryKey
private int id;
private List<List<Integer>> data;
public CTest() {
}
private void setData(List<List<Integer>> data) {
this.data = data;
}
public List<List<Integer>> getData() {
return data;
}
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
}
Run Code Online (Sandbox Code Playgroud)
现在我们想从中查询数据。
List<CTest> results = cassandraOperations.query("SELECT * FROM ctest WHERE id = 1", new RowMapper<CTest>() {
private final TypeToken<List<Integer>> listOfInt = new TypeToken<List<Integer>>() {};
public CTest mapRow(Row row, int rowNum) throws DriverException {
CTest test = new CTest();
test.setId(row.getInt("id"));
test.setData(row.getList("data", listOfInt));
return test;
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1637 次 |
| 最近记录: |