映射卡桑德拉列表<;冷冻<;列表<;int>&燃气轮机&燃气轮机;spring数据cassandra中Java的字段
有人能告诉我,在spring data cassandra中,一个声明为映射卡桑德拉列表<;冷冻<;列表<;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
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));
回归试验;
}
});
非常感谢。非常感谢。