首页 > 解决方案 > spring-data-couchbase - 带有 java.util.Date 方法参数的 N1QL 查询

问题描述

我尝试在 couchbase spring 数据存储库接口中创建一个方法来使用 java.util.Date 参数进行查询,如下所示:

@Query("#{#n1ql.selectEntity} where #{#n1ql.filter} and beginDate < $0")
public Set<Campaign> findBroadcastable(Date now);

但在执行时会引发此异常:

java.lang.IllegalArgumentException: Unsupported type for JsonArray: class java.util.Date

有人会有解决方案吗?

标签: javaspringspring-datacouchbasespring-data-couchbase

解决方案


我在 N1QL 中进行了转换,而不是Date作为参数发送 astring

@Query("h.*, META(h).id AS _ID, META(h).cas AS _CAS FROM
#{#n1ql.bucket} as h WHERE MILLIS_TO_STR(h.creadoEn ,'1111-11-11') = '#{#creadoEn}' AND h.#{#n1ql.filter}")
List<y> findByFecha(@Param("creadoEn") String creadoEn);

MILLIS_TO_STR 将 milis 转换为日期,我给它我想要的格式“1111-11-11”是“yyyy-mm-dd”,并将它与作为参数发送的字符串进行比较。

原谅我糟糕的英语,我希望我有所帮助


推荐阅读