java - 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
有人会有解决方案吗?
解决方案
我在 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”,并将它与作为参数发送的字符串进行比较。
原谅我糟糕的英语,我希望我有所帮助
推荐阅读
- python - Django: DeferredAttribute object / choices field as string value to modify Context in class based ListView
- java - 对 MySQL 的访问被拒绝,无法创建与数据库服务器的连接
- firebase - 在 React Native 中删除已发送的推送通知
- django - Django 模型类始终排除“未发布”实例的一般规则
- swift - Xcode 10.1 Swift 文件修改触发大量编译器错误
- sql - 如何在pyspark中读取sql文件?
- excel - 我可以在调用 SQL 的同时调用命令窗口运行吗?
- elasticsearch - 名称为彼此子字符串的 Elasticsearch 键
- laravel - Laravel pagination-sm pagination-lg 类不能针对不同的断点一起工作
- javascript - Storybook 构建版本的故事在使用 rewiremock 时崩溃