У меня есть объект с именем A
, у которого есть одно свойство userGroups
:
@entity
Public class A {
@OneToMany
@JoinTable(name = "a_user_groups", ...)
private Set<UserGroup> userGroups;
...
}
Мне нужно найти те A
сущности, у которых их userGroups
не имеет пересечения с данным параметром Set<UserGroup> userGroups
.
Это мой метод:
@Query("SELECT a FROM A a WHERE :userGroups intersect a.userGroups is NULL")
List<A> getAWithNoIntersectionInGroups(@param("userGroups") Set<UserGroup> userGroups)
Но в jpa нет ключевого слова intersect
.
Not In
ключевое слово здесь не работает:
Предположим, существует сущность A
с идентификаторами групп пользователей {1,3}
, и мои переданные идентификаторы групп пользователей: {3,4}
, Теперь {1,3}
не находится в {3,4}
, и это правда, и сущность будет выбрана, но она не должен быть выбран, потому что есть взаимный пункт {3}