Cassandra插入:InvalidQueryException:列的条件中的null值无效

时间:2017-07-04 15:52:38

标签: http cassandra dropwizard

您好我开始使用Cassandra,我尝试使用DropWizard创建的REST服务器中的Java代码将数据插入到Cassandra表中

    public int insertqueueid(Datafilter data) throws UnknownHostException 
    {
    PreparedStatement prep = defaultSession.prepare("insert into queueid (queueid, filter, nom, date) values (?,?,?,?)");
    BoundStatement bound = prep.bind(data.getQueued(),data.getFilter(),getName(), new Date()) ;
    defaultSession.execute(bound);
    return 0 ;
    }

但它给了我这个错误:

  

ERROR [2017-07-03 23:45:57,514] io.dropwizard.jersey.errors.LoggingExceptionMapper:处理请求时出错:5d2d169dd71c2520   ! com.datastax.driver.core.exceptions.InvalidQueryException:列queueid的条件中的null值无效   ! at com.datastax.driver.core.Responses $ Error.asException(Responses.java:136)   ! at com.datastax.driver.core.DefaultResultSetFuture.onSet(DefaultResultSetFuture.java:179)   !在com.datastax.driver.core.RequestHandler.setFinalResult(RequestHandler.java:177)

您怎么看?问题是什么? 对不起,语言不好

2 个答案:

答案 0 :(得分:4)

根据错误,看起来NULL值正在传递给queueid列。我假设它是表的分区键,你不能为该列传递NULL。

请检查数据并相应地进行修复。

答案 1 :(得分:0)

如果是Rest,请在方法中添加@RequestBody,如下所示。

public int insertqueueid(@RequestBody Datafilter data) throws UnknownHostException