我想用Kundera创建一个Query,它比较where子句中的时间戳。 我的cassandra模型看起来像这样:
CREATE TABLE booking.booking (
id uuid,
amount decimal,
timestampCreate timestamp,
timestampUpdate timestamp,
PRIMARY KEY (id, timestampCreate)
);
我尝试使用以下代码(使用javax.persistence.criteria.CriteriaBuilder)
CriteriaBuilder criteriaBuilder = manager.getCriteriaBuilder();
CriteriaQuery<T> criteriaQuery = criteriaBuilder.createQuery(clazz);
Root<T> from = criteriaQuery.from(clazz);
from.alias("t");
criteriaQuery.select(from);
criteriaQuery.where(criteriaBuilder.greaterThan(from.get("timestampCreate"), (Date)myDate));
我班上的财产:
@Column(name="timestampcreate")
private java.util.Date timestampCreate;
但是当我执行时,我得到以下错误:
java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Date
at com.impetus.kundera.property.accessor.DateAccessor.toString(DateAccessor.java:166) ~[kundera-core-3.2.jar:?]
我不知道字符串来自何处,我明确地给它们一个日期对象。有什么建议吗?