如何通过多字符串值查找全部?

时间:2019-11-05 12:50:05

标签: java hibernate jpa spring-data-jpa enumeration

我有一个实体雇员,其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数据的新功能。

如果此问题可能重复,请引导我找到正确的答案。

先谢谢了。

1 个答案:

答案 0 :(得分:0)

在尝试了上述有价值的注释的几个版本之后,我发现了基于状态列表的正确提取方法。

Page<Employee> findAllByStatusIn(List<Status> statusList, Pageable pageable);

按预期工作。 也提供可分页的信息。我还尝试从方法中删除All关键字。

这同样起作用:

Page<Employee> findByStatusIn(List<Status> statusList, Pageable pageable);

由于要一次获取多个记录,因此保留了All关键字是为了更好地理解。

但是我相信这不是真的必要。