簡體   English   中英

引起:com.datastax.driver.core.exceptions.InvalidQueryException:日期 (25) 的預期長度為 8 或 0 字節

[英]Caused by: com.datastax.driver.core.exceptions.InvalidQueryException: Expected 8 or 0 byte long for date (25)

我使用 Cassandra 和 SpringBoot 開發應用程序。 我用 Java 編寫了 Cassandra 查詢;

String userName="testUser";
String lastUpdatedDate="2018-11-29 13:00:43.400";
String tenantName="demo";

Select select = QueryBuilder.select().all()
                    .from(tenantName,getGenericClass().getSimpleName())
                    .where(QueryBuilder.eq("user_Name", userName))
                    .and(QueryBuilder.gt("last_updateddate",  lastUpdatedDate))
                    .allowFiltering()
                    .limit(100);
           return (List<T>) cassandraOperations.select(select, getGenericClass());

last_updateddate 是 Cassandra 中的時間戳數據類型列。 userName 和 last_updateddate 列是數據庫中的組合鍵,使用最新版本的 Cassandra。

執行時出現以下錯誤。

引起:com.datastax.driver.core.exceptions.InvalidQueryException:日期 (25) 的預期長度為 8 或 0 字節

以下更改后問題得到解決。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));

Date date = sdf.parse(lastUpdatedDate);
long timeInSec = date.getTime();

Timestamp ts=new Timestamp(timeInSec);  
Date date1=ts;                                                                                                         
 Select select = QueryBuilder.select().all()
                        .from(tenantName,getGenericClass().getSimpleName())
                        .where(QueryBuilder.eq("user_Name", userName))
                        .and(QueryBuilder.gt("last_updateddate",  date1))
                        .allowFiltering()
                        .limit(100);
               return (List<T>) cassandraOperations.select(select, getGenericClass());

您必須檢查 Cassandra 表的數據類型並使用相應的 java 數據類型,並在聲明變量以傳遞列值時在 java 代碼中使用它。

示例:在 Cassandra LocalDate 中,然后在 java 中定義 cassandra.core 包的 LocalDate 而不是 util 包的 Date 或 LocalDate。

檢查Cassandra 與 Java 之間的這種類型映射

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM