我有一个实体雇员,其status
字段为@Enumerated
,该字段另存为PostgreSQL
中的String。
。
状态可以包含3个值:ACTIVE, INACTIVE, TRIAL
。
我想要一个不带命名查询的JPA方法,或者是一个@Query
注释,它将获取我所有的员工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数据的新功能。
如果此问题可能重复,请引导我找到正确的答案。
先谢谢了。
答案 0 :(得分:0)
在尝试了上述有价值的注释的几个版本之后,我发现了基于状态列表的正确提取方法。
Page<Employee> findAllByStatusIn(List<Status> statusList, Pageable pageable);
按预期工作。
也提供可分页的信息。我还尝试从方法中删除All
关键字。
这同样起作用:
Page<Employee> findByStatusIn(List<Status> statusList, Pageable pageable);
由于要一次获取多个记录,因此保留了All
关键字是为了更好地理解。
但是我相信这不是真的必要。