以下两个CriteriaBuilder方法如何使用?您曾经使用过它们还是看到它们在实际应用中使用过?我在网络上找不到示例。阅读代码注释:值和键创建一个可以传递给size(),isMember()等的集合表达式。
//get the values and keys collections of the Map, which may then
//be passed to size(), isMember(), isEmpty(), etc
/**
* Create an expression that returns the values of a map.
*
* @param map map
*
* @return collection expression
*/
<V, M extends Map<?, V>> Expression<Collection<V>> values(M map);
/**
* Create an expression that returns the keys of a map.
*
* @param map map
*
* @return set expression
*/
<K, M extends Map<K, ?>> Expression<Set<K>> keys(M map);
但是为什么需要JPA来确定集合的大小,或者测试元素是否是集合的成员?看来这可以用Java完成,不需要JPA。
答案 0 :(得分:0)
我只会回答第二个问题。
为什么需要JPA来确定集合的大小,或者 测试元素是否是集合的成员?看来这可以用Java完成,不需要JPA。
这些JPA方法用于构建查询。在从数据库检索数据之前创建条件,这样可以更有效地加载所有数据,然后在Java中对其进行过滤。
例如,用户具有更多角色。我们要加载具有特定角色的用户。为此,member of
使用了JPQL保留字。
select u from User u where :specificRole member of u.roles
可以使用相同的方法size()
,is empty
。
https://www.objectdb.com/java/jpa/query/jpql/collection