Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 8如何从另一个列表中获取包含参数的列表中的某些元素_Java_Jpa_Java 8_Java Stream - Fatal编程技术网

Java 8如何从另一个列表中获取包含参数的列表中的某些元素

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

我不确定以前是否有人问过。例如,在rightId等于30的情况下,如何从以下列表中获取所有用户

用户对象:

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
比较呢?。最终,目前还不清楚你想要什么。考虑更新你的帖子来澄清并给出可能的例子。