您好我开始使用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)
您怎么看?问题是什么? 对不起,语言不好
答案 0 :(得分:4)
根据错误,看起来NULL值正在传递给queueid列。我假设它是表的分区键,你不能为该列传递NULL。
请检查数据并相应地进行修复。
答案 1 :(得分:0)
如果是Rest,请在方法中添加@RequestBody
,如下所示。
public int insertqueueid(@RequestBody Datafilter data) throws UnknownHostException