我是Java8的新手,我有一个场景,我需要从Map中检索与对象匹配的所有键.
想知道是否有办法获取所有密钥而不再从列表中重复它们.
Person.java
private String firstName;
private String lastName;
//setters and getters & constructor
MAIN Class.
String inputCriteriaFirstName = "john";
Map<String, Person> inputMap = new HashMap<>();
Collection<Person> personCollection = inputMap.values();
List<Person> personList = new ArrayList<>(personCollection);
List<Person> personOutputList = personList.stream()
.filter(p -> p.getFirstName().contains(inputCriteriaFirstName ))
.collect(Collectors.toList());
//IS There a BETTER way to DO Below ??
Set<String> keys = new HashSet<>();
for(Person person : personOutputList) {
keys.addAll(inputMap.entrySet().stream().filter(entry -> Objects.equals(entry.getValue(), person))
.map(Map.Entry::getKey).collect(Collectors.toSet()));
}
Run Code Online (Sandbox Code Playgroud) 我是Java8的新手.我需要根据某些标准(来自另一个列表)在一个列表中减去/删除POJO并在UI上显示它.
迭代一个列表并搜索条件删除对象将原始列表发送到UI
Children.java
private String firstName;
private String lastName;
private String school;
private String personId;
// Setters and getters.
Person.java
private String personId;
private String fullName;
private String address;
// Setters and Getters.
Run Code Online (Sandbox Code Playgroud)
..主要代码..
// populated by other methods.
List<Person> personList;
//Connect to DB and get ChildrenList
List<Children> childrenList = criteria.list();
for(Children child : childrenList) {
personList.removeIf(person -> child.getPersonId().equals(person.getPersonId()));
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来处理循环?任何帮助表示赞赏.
我想知道我们是否可以通过应用程序在@Formula中设置自定义参数。
@Formula(TAX_RATE * price)
private Integer totalPrice;
Run Code Online (Sandbox Code Playgroud)
TAX_RATE 不是数据库中的列,其中“价格”是数据库中的列。
如何通过应用程序在查询运行时设置 TAX_RATE 值?
有人建议使用 Hibernate Interceptor 'onPreparedStatement' 方法。还有更好的办法吗?
使用 JSON_ARRAYAGG 函数时,限制子句似乎不起作用。
有没有更好的方法来实现功能?
SELECT * FROM USER_TABLE ORDER BY RAND() LIMIT 2;
--> Gives me 2 random employee details - which is perfect.
SELECT JSON_ARRAYAGG(JSON_OBJECT('userId', user_id)) FROM USER_TABLE ORDER BY RAND() LIMIT 2;
--> Gives me ALL the employee details. - which is INCORRECT.
Run Code Online (Sandbox Code Playgroud)