我将 Cassandra Driver 2.0.0-beta2 与 Cassandra 2.0.1 一起使用。
我想在 BoundStatement 中将 NULL 值设置为“int”类型的列。我认为我不能使用 setInt。
这是我正在使用的代码:
String insertStatementString = "insert into subscribers(subscriber,start_date,subscriber_id)";
PreparedStatement insertStatement = session.prepare(insertStatementString);
BoundStatement bs = new BoundStatement(insertStatement);
bs.setString("subscriber",s.getSubscriberName());
bs.setDate("start_date",startDate);
bs.setInt("subscriber_id",s.getSubscriberID());
最后一行抛出了一个空指针异常,可以解释是因为s.getSubscriberID()返回一个Integer,而BoundStatement只接受int,所以当id为null时,无法转换,因此出现异常。
在我看来,定义应该改为:
BoundStatement.setInt(String name, Integer v);
现在的方式是,我不能为数字设置 NULL 值。
还是我错过了什么?还有其他方法可以实现这一目标吗?
在 cqlsh 中,可以将 null 设置为“int”类型的列。