Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
映射卡桑德拉列表<;冷冻<;列表<;int>&燃气轮机&燃气轮机;spring数据cassandra中Java的字段_Cassandra_Spring Data Cassandra - Fatal编程技术网

映射卡桑德拉列表<;冷冻<;列表<;int>&燃气轮机&燃气轮机;spring数据cassandra中Java的字段

映射卡桑德拉列表<;冷冻<;列表<;int>&燃气轮机&燃气轮机;spring数据cassandra中Java的字段,cassandra,spring-data-cassandra,Cassandra,Spring Data Cassandra,有人能告诉我,在spring data cassandra中,一个声明为list的字段是如何映射回java的吗。我可以通过列表>简单地保存数据,但在从数据库读取数据时不起作用,会弹出一个codec not found异常 非常感谢您的帮助。您的声明是正确的。但对于嵌套集合读取,您需要创建自定义行映射器以将行转换为DTO 例如: 让我们来看看桌子 CREATE TABLE ctest ( id int PRIMARY KEY, data list<frozen<list

有人能告诉我,在spring data cassandra中,一个声明为
list
的字段是如何映射回java的吗。我可以通过
列表>
简单地保存数据,但在从数据库读取数据时不起作用,会弹出一个codec not found异常


非常感谢您的帮助。

您的声明是正确的。但对于嵌套集合读取,您需要创建自定义行映射器以将行转换为DTO

例如:

让我们来看看桌子

CREATE TABLE ctest (
    id int PRIMARY KEY,
    data list<frozen<list<int>>>
);
创建表ctest(
id int主键,
数据表
);
和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;
    }

}
公共类测试{
@主键
私有int-id;
私人名单数据;
公共测试(){
}
私有void setData(列表数据){
这个数据=数据;
}
公共列表getData(){
返回数据;
}
公共无效集合id(内部id){
this.id=id;
}
公共int getId(){
返回id;
}
}
现在我们要从中查询数据

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;
    }
});
List results=cassandraOperations.query(“从ctest中选择*,其中id=1”,新建行映射器(){
私有最终TypeToken listOfInt=新的TypeToken(){};
public CTest mapRow(Row-Row,int-rowNum)抛出DriverException{
CTest测试=新的CTest();
test.setId(row.getInt(“id”));
test.setData(row.getList(“data”,listOfInt));
回归试验;
}
});

您的声明是正确的。但对于嵌套集合读取,您需要创建自定义行映射器以将行转换为DTO

例如:

让我们来看看桌子

CREATE TABLE ctest (
    id int PRIMARY KEY,
    data list<frozen<list<int>>>
);
创建表ctest(
id int主键,
数据表
);
和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;
    }

}
公共类测试{
@主键
私有int-id;
私人名单数据;
公共测试(){
}
私有void setData(列表数据){
这个数据=数据;
}
公共列表getData(){
返回数据;
}
公共无效集合id(内部id){
this.id=id;
}
公共int getId(){
返回id;
}
}
现在我们要从中查询数据

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;
    }
});
List results=cassandraOperations.query(“从ctest中选择*,其中id=1”,新建行映射器(){
私有最终TypeToken listOfInt=新的TypeToken(){};
public CTest mapRow(Row-Row,int-rowNum)抛出DriverException{
CTest测试=新的CTest();
test.setId(row.getInt(“id”));
test.setData(row.getList(“data”,listOfInt));
回归试验;
}
});

非常感谢。非常感谢。