检索列表<blob> cassandra示例</blob>

时间:2014-08-27 23:42:05

标签: java list cassandra blob cql3

我试图将一些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;?

1 个答案:

答案 0 :(得分:2)

要留下答案:对row.getBytes("features");进行了不必要的调用,导致错误