Я не уверен, если кто-то спрашивал это раньше.Как получить всех пользователей из следующего списка, где rightId равен, например, 30.
Объект пользователя:
public class User {
private int id;
private String email;
private List<Rights> RightsSet;
}
Права пользователя:
public class Rights{
private int id;
private String Name;
private List<User> userSet;
}
отношение является ManyToMany, и я использую JPA.Но я не буду использовать namedQuery или другие операторы SQL.
Я пробовал это:
List<User> userList = em2.getAllEntity(User.class); //I get all User
1.
List<User>o = userList.stream()
.filter(x -> x.getRightsSet().stream()
.anyMatch(y -> y.getId() == 5201)
)
.collect(Collectors.toList());
2.
List<User> rights = userList.stream()
.filter(x -> x.getRightsSet().stream()
.filter(y -> y.getId() == 31).findAny().orElse(null) != null)
.collect(Collectors.toList());
Может кто-нибудь мне помочь?