Java 8如何从另一个列表中获取包含参数的列表中的某些元素
我不确定以前是否有人问过。例如,在rightId等于30的情况下,如何从以下列表中获取所有用户 用户对象:Java 8如何从另一个列表中获取包含参数的列表中的某些元素,java,jpa,java-8,java-stream,Java,Jpa,Java 8,Java Stream,我不确定以前是否有人问过。例如,在rightId等于30的情况下,如何从以下列表中获取所有用户 用户对象: public class User { private int id; private String email; private List<Rights> RightsSet; } 公共类用户{ 私有int-id; 私人字符串电子邮件; 私人名单权利集; } 用户权限: public class Rights{ private
public class User {
private int id;
private String email;
private List<Rights> RightsSet;
}
公共类用户{
私有int-id;
私人字符串电子邮件;
私人名单权利集;
}
用户权限:
public class Rights{
private int id;
private String Name;
private List<User> userSet;
}
公共类权限{
私有int-id;
私有字符串名称;
私有列表用户集;
}
这个关系是很多的,我使用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());
List userList=em2.getAllEntity(User.class)//我得到了所有的用户
1.
Listo=userList.stream()
.filter(x->x.getRightsSet().stream())
.anyMatch(y->y.getId()==5201)
)
.collect(Collectors.toList());
2.
列表权限=userList.stream()
.filter(x->x.getRightsSet().stream())
.filter(y->y.getId()==31).findAny().orElse(null)!=null)
.collect(Collectors.toList());
有人能帮我吗?您在使用上述方法时面临的问题是什么?y.getId()==31和y.getId()==5201应该是y.getId()==30您想使用其他元素列表进行筛选吗?@RavindraRanwala我总是得到所有用户,而不仅仅是右ID=30@JanBraunsdorff“我想要rightid=30的所有用户”那你为什么要和
5201
和31
比较呢?。最终,目前还不清楚你想要什么。考虑更新你的帖子来澄清并给出可能的例子。