JPA CriteriaBuilder方法:键和值。怎么用?

问题描述 投票:3回答:1

如何使用以下两种CriteriaBuilder方法?您是否曾经使用它们或在实际应用中看到过它们?我在网上找不到一个例子。读取代码注释:values和keys创建一个可以传递给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。

java jpa criteria criteria-api
1个回答
0
投票

我将回答第二个问题。

为什么需要JPA来确定集合的大小,或者测试元素是否是集合的成员?看来这可以用Java完成,不需要JPA。

这些JPA方法用于构建查询。在从DB检索数据之前创建条件对于加载所有数据然后在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

© www.soinside.com 2019 - 2024. All rights reserved.