我不确定之前是否有人问过它。如何让所有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());
有人可以帮助我吗?