我在Cassandra 2.0.1中使用了Cassandra Driver 2.0.0-beta2。在BoundStatement中設置NULL值
我想將NULL值設置爲BoundStatement中'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解釋()返回一個整數,BoundStatement只接受整型,所以當id爲空時,它不能被轉換,因此是異常。
在我看來的定義應該改爲:
BoundStatement.setInt(String name, Integer v);
它是現在的樣子,我不能爲數字設置NULL值。
或者我錯過了什麼? 還有其他方法可以實現嗎?
在cqlsh中,可以將null設置爲'int'類型的列。
你能添加一個較大的代碼樣品;一個包含初始化中使用的PreparedStatement? – lorcan
我編輯了我的答案。 – Anakin001