【发布时间】:2021-12-24 03:19:21
【问题描述】:
我正在尝试找到一种方法来查找某个字段(MySQL Set of numbers)包含一个项目或一组项目的位置。我看到有一个 contains 关键字,但我不确定这是否适用于 Set。
我在想这样的事情:
public interface IScheduleRepository extends Repository<Schedule, Long> {
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
List<Schedule> findAllByDaysOfTheWeekContains(Set<Long> days);
}
并且在时间表类中:
@ElementCollection
private List<Long> daysOfTheWeek;
Spring Data JPA 是否支持检查集合是否包含项目?或者更进一步,如果集合包含一个集合?
【问题讨论】:
-
JPA 需要一个实体的属性,例如 findAllByFirstNameIn(List
names);确定查询数据时要使用的列名。如果 daysOfTheWeek 是一个属性,那么用户 findAllByDaysOfTheWeekIn(Set days) -
@krishnathota 是的,就是这样。 daysOfTheWeek 存储为一组数字,我想检索给定数字(或一组数字)在该集中的行。
In关键字是否能够实现该集合成员资格? -
是的,In 应该为你做这件事。如果不起作用,请尝试让我知道。
-
@krishnathota 那行不通。我认为 Sets 只能存储字符串。我很难弄清楚如何为集合设置默认值并为行插入值
标签: java spring-boot jpa spring-data-jpa