查询以查找其子集合没有任何匹配条目的所有实体

时间:2019-08-29 17:29:19

标签: spring-data-jpa jpql

我正在尝试查找其中所述实体具有元素的嵌套集合(0..n),并且该嵌套集合中的对象中的属性用作查询过滤器的所有实体。

引用下面的类(A和IgnoredUser):

为我找到所有A,其中ignoredUsers为空或ignoredUsers不包含ignoredUser.userId

样本方法签名:+ getAllA(ignoreUserId:long):集合

这种查询的JPQL查询语法@Query(... some query string)是什么?

其他版本详细信息

休眠:5.2

弹簧靴:2.0.6

java:11

示例实体类

class A {
   private Collection<IgnoredUser> ignoredUsers;
}

class IgnoredUser {
   private String name;
   private long userId;
}

样本数据集

对于以下实体A记录:

  • 实体A a1没有忽略的用户(空集合)

  • 实体A a2拥有2个被忽略的用户(userId 1和userId 2)

  • 实体A a3具有1个ignoreUser(用户ID 1)

上述样本数据集的样本查询和预期结果

  • 查询1:getAllA(1)应该只返回实体a1

  • 查询2:getAllA(2)应该返回实体a1和a3

  • 查询3:getAllA(3)应该返回所有实体a1,a2和a3

0 个答案:

没有答案