Java 8如何使用其他列表中的参数从列表中获取某些元素

时间:2018-05-20 11:45:28

标签: java jpa java-8 java-stream

我不确定之前是否有人问过它。如何让所有User形成以下列表,例如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());

有人可以帮助我吗?

0 个答案:

没有答案