Вызывается: com.datastax.driver.core.exceptions.InvalidQueryException: ожидается 8 или 0 байт для даты (25) - PullRequest
0 голосов
/ 05 декабря 2018

Я разрабатывал приложение, используя Cassandra и SpringBoot.Я написал запрос Cassandra на Java;

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: Ожидаемая длина 8 или 0 байт для даты (25)

но

Проблема была решена после изменения ниже.

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());
...