spring - 如何在 JPA 存储库的自定义方法中使用规范
问题描述
假设我有这个搜索存储库方法:
@Query(value = "SELECT t.a, t.b, t.c, t.d, t.e from Table t where t.a= :param1 and t.e= :param2")
Page<MyObject> search(Long param1, Long param2, Pageable pageable);
我想将规范应用到此方法中,如下所示:
@Query(value = "SELECT t.a, t.b, t.c, t.d, t.e from Table t where t.a= :param1 and t.e= :param2")
Page<MyObject> search(Long param1, Long param2, Specification specification, Pageable pageable);
有可能做到吗?因为我很确定规范只能应用于默认的 Spring 方法(findAll
)。
解决方案
正确答案是否定的。根据 JpaSpecificationExecutor,您可以通过以下方法使用 Specification 对象:
findOne(@Nullable Specification<T> spec);
findAll(@Nullable Specification<T> spec);
findAll(@Nullable Specification<T> spec, Pageable pageable);
findAll(@Nullable Specification<T> spec, Sort sort);
count(@Nullable Specification<T> spec);
推荐阅读
- swift - Swift 如何优雅地处理多个按钮 UI?
- python - 熊猫数据框连接后重置组数
- ietf-netmod-yang - config=false 强制节点
- elm - 在 Elm 中组合两个不同的 API 请求
- python - 如果 Python 中不存在 For 循环迭代,则获取空值
- ios - Xcode 能源影响非常高 - iPhone X 上的显示
- mysql - 如何在 group_concat 函数 MYSQL 中使用换行符作为分隔符?
- javascript - 如何从三个函数中获取值到外部并实时更新?
- excel - 测试字符串是否包含子字符串
- python - 模块对象没有来自 docker 容器的属性 windll