【发布时间】:2020-07-14 18:44:29
【问题描述】:
我认为这是一个愚蠢的问题,但我被困了好几天。 我有一个属性为字符串列表的实体,如下所示:
public class DummyEntity {
@Id
@GeneratedValue
private Long id;
private String name;
@ElementCollection
private List<String> items;
}
我正在使用 Spring Data JPA 并希望查询此实体并从该数组列表中具有 exact 项集的数据库实体中获取。这意味着如果我的数据库中有:
DummyEntity (1, "name1", ["first"])
DummyEntity (1, "name1", ["first", "second"])
DummyEntity (1, "name1", ["first", , "second", "third"])
我需要一个我通过的查询,即 ["first", "second"](字符串顺序无关紧要),我只返回 DummyEntity (1, "name1", ["first", "second"])。我知道我可以用 java 做到这一点,但我会讨厌它作为解决方法。
我是为了这个问题而制作的:github demo project 我有一个最小的项目,但我需要成功的测试失败。我尝试的是以下内容:
Page<DummyEntity> findAllByItemsIn(Pageable pageable,List<String> items);
Page<DummyEntity> findAllByItemsContains(Pageable pageable,List<String> items);
Page<DummyEntity> findAllByItemsEquals(Pageable pageable,List<String> items);
Page<DummyEntity> findAllByItems(Pageable pageable,List<String> items);
【问题讨论】:
标签: java hibernate jpa spring-data-jpa