com.yahoo.squidb.sql.Query.union()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(3.7k)|赞(0)|评价(0)|浏览(122)

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

Query.union介绍

[英]Form a compound select with the given query using the UNION operator
[中]使用UNION运算符与给定查询形成复合select

代码示例

代码示例来源:origin: yahoo/squidb

/**
 * Form a compound select with the given query using the UNION operator
 *
 * @param query a Query object to append with the UNION operator
 * @return this Query object, to allow chaining method calls
 * @see <a href="http://www.sqlite.org/lang_select.html#compound">http://www.sqlite.org/lang_select.html#compound</a>
 */
public Query union(Query query) {
  if (immutable) {
    return fork().union(query);
  }
  addCompoundSelect(CompoundSelect.union(query));
  return this;
}

代码示例来源:origin: yahoo/squidb

public void testValidationPropagatesToSubqueryJoinAndCompoundSelect() {
  Query subquery = Query.select(Thing.FOO).from(Thing.TABLE).where(Thing.BAR.gt(0));
  Query joinSubquery = Query.select(Thing.BAR).from(Thing.TABLE).where(Thing.FOO.isNotEmpty());
  Query compoundSubquery = Query.select(Thing.BAZ).from(Thing.TABLE).where(Thing.IS_ALIVE.isTrue());
  SubqueryTable subqueryTable = subquery.as("t1");
  SubqueryTable joinTable = joinSubquery.as("t2");
  Query query = Query.select().from(subqueryTable).innerJoin(joinTable, (Criterion[]) null)
      .union(compoundSubquery);
  final int queryLength = query.compile(database.getCompileContext()).sql.length();
  String withValidation = query.sqlForValidation(database.getCompileContext());
  assertEquals(queryLength + 6, withValidation.length());
}

代码示例来源:origin: yahoo/squidb

public void testNeedsValidationUpdatedBySubqueryTable() {
  Query subquery = Query.select(Thing.PROPERTIES).from(Thing.TABLE).where(Criterion.literal(123));
  subquery.requestValidation();
  assertTrue(subquery.compile(database.getCompileContext()).sql.contains("WHERE (?)"));
  Query baseTestQuery = Query.select().from(Thing.TABLE).where(Thing.FOO.isNotEmpty()).freeze();
  assertFalse(baseTestQuery.needsValidation());
  Query testQuery = baseTestQuery.from(subquery.as("t1"));
  assertTrue(testQuery.compile(database.getCompileContext()).needsValidation);
  assertTrue(testQuery.sqlForValidation(database.getCompileContext()).contains("WHERE ((?))"));
  testQuery = baseTestQuery.innerJoin(subquery.as("t2"), (Criterion[]) null);
  assertTrue(testQuery.compile(database.getCompileContext()).needsValidation);
  assertTrue(testQuery.sqlForValidation(database.getCompileContext()).contains("WHERE ((?))"));
  testQuery = baseTestQuery.union(subquery);
  assertTrue(testQuery.compile(database.getCompileContext()).needsValidation);
  assertTrue(testQuery.sqlForValidation(database.getCompileContext()).contains("WHERE ((?))"));
}

代码示例来源:origin: com.yahoo.squidb/squidb

/**
 * Form a compound select with the given query using the UNION operator
 *
 * @param query a Query object to append with the UNION operator
 * @return this Query object, to allow chaining method calls
 * @see <a href="http://www.sqlite.org/lang_select.html#compound">http://www.sqlite.org/lang_select.html#compound</a>
 */
public Query union(Query query) {
  if (immutable) {
    return fork().union(query);
  }
  addCompoundSelect(CompoundSelect.union(query));
  return this;
}

代码示例来源:origin: yahoo/squidb

public void testUnion() {
  Query query = Query.select().from(Employee.TABLE).where(Employee.MANAGER_ID.eq(1))
      .union(Query.select().from(Employee.TABLE).where(Employee.ID.eq(2)))
      .orderBy(Employee.ID.asc());
  SquidCursor<Employee> cursor = database.query(Employee.class, query);
  try {
    assertEquals(3, cursor.getCount());
    cursor.moveToFirst();
    assertEquals(cookieMonster, new Employee(cursor));
    cursor.moveToNext();
    assertEquals(elmo, new Employee(cursor));
    cursor.moveToNext();
    assertEquals(oscar, new Employee(cursor));
  } finally {
    cursor.close();
  }
}

相关文章