2017-07-31 143 views
0

我在我的應用程序中使用java8和cassandra。 cassandra表中current_date的數據類型是'date'。 我正在使用實體映射到表值。並且實體中相同字段的數據類型爲com.datastax.driver.core.LocalDate。編解碼器找不到請求的操作:['org.apache.cassandra.db.marshal.SimpleDateType'<-> com.datastax.driver.core.LocalDate]

當我嘗試檢索記錄 'Select * from table where current_date='2017-06-06';' 我收到以下錯誤」

產生的原因:com.datastax.driver.core.exceptions.CodecNotFoundException:編解碼器 找不到請求的操作: [ 'org.apache.cassandra.db.marshal.SimpleDateType' < - > com.datastax.driver.core.LocalDate]

+1

這個? http://docs.datastax.com/en/developer/java-driver/3.1/manual/custom_codecs/extras/ – Eugene

回答

0

默認情況下,Java驅動程序將映射日期類型成com.datastax.driver.core.LocalDate Java type.

如果需要轉換日期java.time.LocalDate,那麼你需要額外添加到項目中: 您可以只給列指定的編解碼器:

@Column(codec = LocalDateCodec.class) java.time.LocalDate current_date ; 

如果這兩個工作因此未請有查看代碼如何創建會話,集羣等連接到數據庫。由於日期是對cassandra數據類型的新增加,因此協議版本也會產生影響。 相應更新版本

+0

我遇到過類似的問題。我通過將版本從3更新爲4來修復它 –

相關問題