Cassandra 2.0.1 で Cassandra Driver 2.0.0-beta2 を使用しています。
BoundStatement で 'int' 型の列に NULL 値を設定したいと考えています。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());
最後の行は null ポインター例外をスローします。これは、s.getSubscriberID() が Integer を返し、BoundStatement が int のみを受け入れるため説明できます。そのため、id が null の場合は変換できず、例外になります。
私の意見では、定義は次のように変更する必要があります。
BoundStatement.setInt(String name, Integer v);
今のやり方では、数値に NULL 値を設定することはできません。
または、何か不足していますか?これを達成する他の方法はありますか?
cqlsh では、「int」型の列に null を設定できます。