com.querydsl.core.types.ExpressionUtils.in()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(5.9k)|赞(0)|评价(0)|浏览(184)

本文整理了Java中com.querydsl.core.types.ExpressionUtils.in()方法的一些代码示例,展示了ExpressionUtils.in()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ExpressionUtils.in()方法的具体详情如下:
包路径:com.querydsl.core.types.ExpressionUtils
类名称:ExpressionUtils
方法名:in

ExpressionUtils.in介绍

[英]Create a left in right expression
[中]

代码示例

代码示例来源:origin: querydsl/querydsl

/**
 * Create a {@code left in right or...} expression for each list
 *
 * @param <D> element type
 * @param left
 * @param lists
 * @return a {@code left in right or...} expression
 */
public static <D> Predicate inAny(Expression<D> left, Iterable<? extends Collection<? extends D>> lists) {
  BooleanBuilder rv = new BooleanBuilder();
  for (Collection<? extends D> list : lists) {
    rv.or(in(left, list));
  }
  return rv;
}

代码示例来源:origin: querydsl/querydsl

@Test
public void in() {
  assertEquals("str in [a, b, c]", ExpressionUtils.in(str, Arrays.asList("a","b","c")).toString());
}

代码示例来源:origin: querydsl/querydsl

@SuppressWarnings("unchecked")
@Nullable
protected Predicate createJoinFilter(QueryMetadata metadata) {
  Multimap<Expression<?>, Predicate> predicates = HashMultimap.create();
  List<JoinExpression> joins = metadata.getJoins();
  for (int i = joins.size() - 1; i >= 0; i--) {
    JoinExpression join = joins.get(i);
    Path<?> source = (Path) ((Operation<?>) join.getTarget()).getArg(0);
    Path<?> target = (Path) ((Operation<?>) join.getTarget()).getArg(1);
    Collection<Predicate> extraFilters = predicates.get(target.getRoot());
    Predicate filter = ExpressionUtils.allOf(join.getCondition(), allOf(extraFilters));
    List<? extends Object> ids = getIds(target.getType(), filter);
    if (ids.isEmpty()) {
      throw new NoResults();
    }
    Path<?> path = ExpressionUtils.path(String.class, source, "$id");
    predicates.put(source.getRoot(), ExpressionUtils.in((Path<Object>) path, ids));
  }
  Path<?> source = (Path) ((Operation) joins.get(0).getTarget()).getArg(0);
  return allOf(predicates.get(source.getRoot()));
}

代码示例来源:origin: querydsl/querydsl

@Test
public void in_subQuery() {
  String s = ExpressionUtils.in(str, new SubQueryExpressionImpl<String>(String.class, new DefaultQueryMetadata())).toString();
  assertTrue(s.startsWith("str in com.querydsl.core.DefaultQueryMetadata@c"));
}

代码示例来源:origin: spring-projects/spring-data-mongodb

@SuppressWarnings("unchecked")
@Nullable
protected Predicate createJoinFilter(QueryMetadata metadata) {
  LinkedMultiValueMap<Expression<?>, Predicate> predicates = new LinkedMultiValueMap<>();
  List<JoinExpression> joins = metadata.getJoins();
  for (int i = joins.size() - 1; i >= 0; i--) {
    JoinExpression join = joins.get(i);
    Path<?> source = (Path) ((Operation<?>) join.getTarget()).getArg(0);
    Path<?> target = (Path) ((Operation<?>) join.getTarget()).getArg(1);
    Collection<Predicate> extraFilters = predicates.get(target.getRoot());
    Predicate filter = ExpressionUtils.allOf(join.getCondition(), allOf(extraFilters));
    List<? extends Object> ids = getIds(target.getType(), filter);
    if (ids.isEmpty()) {
      return ExpressionUtils.predicate(QuerydslMongoOps.NO_MATCH, source);
    }
    Path<?> path = ExpressionUtils.path(String.class, source, "$id");
    predicates.add(source.getRoot(), ExpressionUtils.in((Path<Object>) path, ids));
  }
  Path<?> source = (Path) ((Operation) joins.get(0).getTarget()).getArg(0);
  return allOf(predicates.get(source.getRoot()));
}

代码示例来源:origin: spring-projects/spring-data-mongodb

sink.next(ExpressionUtils.in((Path<Object>) path, it));
});

代码示例来源:origin: org.springframework.data/spring-data-mongodb

@SuppressWarnings("unchecked")
@Nullable
protected Predicate createJoinFilter(QueryMetadata metadata) {
  LinkedMultiValueMap<Expression<?>, Predicate> predicates = new LinkedMultiValueMap<>();
  List<JoinExpression> joins = metadata.getJoins();
  for (int i = joins.size() - 1; i >= 0; i--) {
    JoinExpression join = joins.get(i);
    Path<?> source = (Path) ((Operation<?>) join.getTarget()).getArg(0);
    Path<?> target = (Path) ((Operation<?>) join.getTarget()).getArg(1);
    Collection<Predicate> extraFilters = predicates.get(target.getRoot());
    Predicate filter = ExpressionUtils.allOf(join.getCondition(), allOf(extraFilters));
    List<? extends Object> ids = getIds(target.getType(), filter);
    if (ids.isEmpty()) {
      return ExpressionUtils.predicate(QuerydslMongoOps.NO_MATCH, source);
    }
    Path<?> path = ExpressionUtils.path(String.class, source, "$id");
    predicates.add(source.getRoot(), ExpressionUtils.in((Path<Object>) path, ids));
  }
  Path<?> source = (Path) ((Operation) joins.get(0).getTarget()).getArg(0);
  return allOf(predicates.get(source.getRoot()));
}

代码示例来源:origin: com.querydsl/querydsl-core

/**
 * Create a {@code left in right or...} expression for each list
 *
 * @param <D> element type
 * @param left
 * @param lists
 * @return a {@code left in right or...} expression
 */
public static <D> Predicate inAny(Expression<D> left, Iterable<? extends Collection<? extends D>> lists) {
  BooleanBuilder rv = new BooleanBuilder();
  for (Collection<? extends D> list : lists) {
    rv.or(in(left, list));
  }
  return rv;
}

代码示例来源:origin: com.querydsl/querydsl-sql

@Test
public void or_in() {
  StringPath path = Expressions.stringPath("str");
  Expression<?> expr = ExpressionUtils.anyOf(
      ExpressionUtils.in(path, Arrays.asList("1", "2", "3")),
      ExpressionUtils.in(path, Arrays.asList("4", "5", "6")));
  SQLSerializer serializer = new SQLSerializer(Configuration.DEFAULT);
  serializer.handle(expr);
  assertEquals(Arrays.asList(path, path, path, path, path, path), serializer.getConstantPaths());
  assertEquals(6, serializer.getConstants().size());
}

代码示例来源:origin: com.querydsl/querydsl-sql

@Test
public void in() {
  StringPath path = Expressions.stringPath("str");
  Expression<?> expr = ExpressionUtils.in(path, Arrays.asList("1", "2", "3"));
  SQLSerializer serializer = new SQLSerializer(Configuration.DEFAULT);
  serializer.handle(expr);
  assertEquals(Arrays.asList(path, path, path), serializer.getConstantPaths());
  assertEquals(3, serializer.getConstants().size());
}

相关文章