Java 8 Как получить некоторые элементы из списка с параметрами из другого списка - PullRequest
0 голосов
/ 20 мая 2018

Я не уверен, если кто-то спрашивал это раньше.Как получить всех пользователей из следующего списка, где 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());

Может кто-нибудь мне помочь?

...