java - Java 8 如何使用另一个列表中的参数从列表中获取一些元素
问题描述
我不确定之前是否有人问过。例如,如何从以下列表中获取所有用户,其中 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());
有人能帮我吗?
解决方案
推荐阅读
- html - 反正有没有使用 lang 属性
- php - 在 Wordpress 中添加基于 php 的 Leaflet 地图
- php - 我的 Google recaptcha 验证不起作用
- android - 如何在“编辑文本”可绘制权限上添加可访问性焦点(对讲)
- php - exec 和 composer 拒绝权限
- autohotkey - 当我执行特定代码时,AHK 滞后;我需要某种延迟吗?
- javascript - how to append the button to each
- tag in javascript using forEach loop
- c# - c# foreach 遍历对象并保存浮点数组
- javascript - 在命令行上测试客户端 javascript
- python - Numpy:获取索引大于值且条件为真的数组