我试图将一些java对象作为列表插入到cassandra中。 我有一个可序列化的java类 我将它们插入:
public void storeFeatures(java.util.Vector features){
java.util.UUID uuid = java.util.UUID.randomUUID();
java.util.List<ByteBuffer> ls=new java.util.ArrayList<ByteBuffer>();
for(int i=0;i<features.size();i++) {
my.package.Feature f=(my.package.Feature)features.elementAt(i);
byte[]b=(new ObjectToBytes()).getBytes(f);
ls.add(java.nio.ByteBuffer.wrap(b));
}
session.execute("INSERT INTO mytable ( id, features) values ( ?, ? )", uuid, ls);
}
但是,不知怎的,我无法用
检索它们public java.util.List getFeatures(){
java.util.List<ByteBuffer> ret=null;
ResultSet rows = session.execute("SELECT * FROM imgs limit 10");
for(Row row: rows){
row.getBytes("features");
ret=row.getList("features",java.nio.ByteBuffer.class);
}
return ret;
}
我得到了
com.datastax.driver.core.exceptions.InvalidTypeException: Column features is of type list<blob>
at com.datastax.driver.core.ColumnDefinitions.checkType(ColumnDefinitions.java:291)
如何检索列表&lt; blob&gt;类型如列表&lt; ByteBuffer&gt;?
答案 0 :(得分:2)
要留下答案:对row.getBytes("features");
进行了不必要的调用,导致错误