java - 如何通过乘以字符串值来查找所有内容?
问题描述
我有一个实体员工,其status
字段 as@Enumerated
被保存为 String in PostgreSQL
。
.
status 可以包含 3 个值:ACTIVE, INACTIVE, TRIAL
.
我想要一个没有命名查询或@Query
Annotation 的 JPA 方法,它将获取我所有的 Employees where status = 'ACTIVE' or 'TRIAL'.
。
`findAllByStatusIn(List statusList)' 只给出最后添加到列表的状态。
即,如果我添加
statusList.add(Status.ACTIVE)
statusList.add(Status.TRIAL)
. 然后我只得到TRIAL
员工。但是如果我添加
statusList.add(Status.TRIAL);
statusList.add(Status.ACTIVE);
如何使用 JPA 方法获取两种状态的值?
任何帮助表示赞赏。
JPA 和 Spring 数据的新手。
如果这个问题可能重复,请引导我找到正确的答案。
提前致谢。
解决方案
在尝试了上述宝贵意见的几个版本后,我找到了基于状态列表的正确获取方法。
Page<Employee> findAllByStatusIn(List<Status> statusList, Pageable pageable);
按预期工作。也提供可分页信息。我还尝试All
从方法中删除关键字。
这也一样:
Page<Employee> findByStatusIn(List<Status> statusList, Pageable pageable);
由于一次获取多条记录,因此我保留了All
关键字以便更好地理解。
但我相信这不是真的必要。
推荐阅读
- vue.js - 具有多个模块的 Vuex rootActions
- javascript - Electron:有什么方法可以通过 ipc 访问/修改主进程数组
- spring-boot - 如何使用 JDBC 模板或 JPA 在 SpringBoot 应用程序中将 Auto Commit 设置为 false
- java - 安卓中的电话
- groovy - SoapUI/Groovy - 如何复制节点?
- cakephp - $this->Auth->User(); 一片空白
- c# - 如何以所有形式链接asp.net,C#Web应用程序中的模块
- mysql - BigQuery 和不在
- sql-server - 通过触发器或计划更新每个时间单位的累积数据
- python - Python & Plotly:通过字典自定义颜色到饼图