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

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

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

Query.selectMore介绍

[英]Add more Field to be selected
[中]添加更多要选择的字段

代码示例

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

  1. /**
  2. * Add more {@link Field Fields} to be selected
  3. *
  4. * @param fields the additional Fields to be selected
  5. * @return this Query object, to allow chaining method calls
  6. */
  7. public Query selectMore(List<Field<?>> fields) {
  8. if (immutable) {
  9. return fork().selectMore(fields);
  10. }
  11. if (!isEmpty(fields)) {
  12. if (this.fields == null) {
  13. this.fields = new ArrayList<>(fields);
  14. } else {
  15. this.fields.addAll(fields);
  16. }
  17. if (selectAllCache != null) {
  18. selectAllCache.clear();
  19. }
  20. invalidateCompileCache();
  21. }
  22. return this;
  23. }

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

  1. /**
  2. * Add more {@link Field Fields} to be selected
  3. *
  4. * @param fields the additional Fields to be selected
  5. * @return this Query object, to allow chaining method calls
  6. */
  7. public Query selectMore(Field<?>... fields) {
  8. if (immutable) {
  9. return fork().selectMore(fields);
  10. }
  11. if (!isEmpty(fields)) {
  12. if (this.fields == null) {
  13. this.fields = new ArrayList<>();
  14. }
  15. SquidUtilities.addAll(this.fields, fields);
  16. if (selectAllCache != null) {
  17. selectAllCache.clear();
  18. }
  19. invalidateCompileCache();
  20. }
  21. return this;
  22. }

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

  1. public void testSelectFunction() {
  2. Function<String> upper = Function.upper(TestModel.LAST_NAME);
  3. SquidCursor<TestModel> cursor = database
  4. .query(TestModel.class, Query.select(TestModel.PROPERTIES).selectMore(upper));
  5. try {
  6. cursor.moveToFirst();
  7. new TestModel(cursor); // Should succeed without throwing an exception
  8. } finally {
  9. cursor.close();
  10. }
  11. }

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

  1. public void testCustomIdColumn() {
  2. Function<Long> idSquared = Function.rawFunction("_id * _id");
  3. LongProperty idSquaredProperty = LongProperty.fromFunction(idSquared, "idSquared");
  4. Query query = Query.select(TestModel.PROPERTIES).selectMore(idSquaredProperty).orderBy(TestModel.ID.asc());
  5. testCursorAdapterInternal(new TestModel(), idSquaredProperty, query, new CursorAdapterTest() {
  6. @Override
  7. public void testCursorAdapter(SquidCursorAdapter<AbstractModel> adapter) {
  8. assertTrue(adapter.hasStableIds());
  9. assertEquals(1, adapter.getItemId(0));
  10. assertEquals(4, adapter.getItemId(1));
  11. }
  12. });
  13. }

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

  1. private void testRecyclerAdapterInternal(LongProperty idProperty, RecyclerAdapterTest test) {
  2. Query query = Query.select(TestModel.PROPERTIES)
  3. .orderBy(TestModel.BIRTHDAY.asc())
  4. .limit(2);
  5. if (idProperty != null) {
  6. query.selectMore(idProperty);
  7. }
  8. SquidCursor<TestModel> cursor = database.query(TestModel.class, query);
  9. TestRecyclerAdapter adapter = new TestRecyclerAdapter(idProperty);
  10. adapter.changeCursor(cursor);
  11. try {
  12. test.testRecyclerAdapter(adapter);
  13. } finally {
  14. cursor.close();
  15. }
  16. }

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

  1. public void testAggregateCount() {
  2. TestModel model1 = insertBasicTestModel();
  3. TestModel model2 = new TestModel().setFirstName(model1.getFirstName()).setLastName("Smith");
  4. database.persist(model2);
  5. IntegerProperty groupCount = IntegerProperty.countProperty(TestModel.FIRST_NAME, false);
  6. Query query = Query.select(TestModel.PROPERTIES).selectMore(groupCount).groupBy(TestModel.FIRST_NAME);
  7. SquidCursor<TestModel> groupedCursor = database.query(TestModel.class, query);
  8. try {
  9. groupedCursor.moveToFirst();
  10. assertEquals(1, groupedCursor.getCount());
  11. assertEquals(2, groupedCursor.get(groupCount).intValue());
  12. } finally {
  13. groupedCursor.close();
  14. }
  15. }

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

  1. public void testNeedsValidationUpdatedByQueryFunction() {
  2. Query subquery = Query.select(Function.max(Thing.ID)).from(Thing.TABLE).where(Criterion.literal(123));
  3. subquery.requestValidation();
  4. assertTrue(subquery.compile(database.getCompileContext()).sql.contains("WHERE (?)"));
  5. Query baseTestQuery = Query.select().from(Thing.TABLE).where(Thing.FOO.isNotEmpty()).freeze();
  6. assertFalse(baseTestQuery.needsValidation());
  7. Query testQuery = baseTestQuery.selectMore(subquery.asFunction());
  8. assertTrue(testQuery.compile(database.getCompileContext()).needsValidation);
  9. assertTrue(testQuery.sqlForValidation(database.getCompileContext()).contains("WHERE ((?))"));
  10. }

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

  1. Query query = Query.select(Employee.PROPERTIES).selectMore(coworkers)
  2. .from(Employee.TABLE);
  3. if (leftJoin) {

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

  1. /**
  2. * Add more {@link Field Fields} to be selected
  3. *
  4. * @param fields the additional Fields to be selected
  5. * @return this Query object, to allow chaining method calls
  6. */
  7. public Query selectMore(List<Field<?>> fields) {
  8. if (immutable) {
  9. return fork().selectMore(fields);
  10. }
  11. if (!isEmpty(fields)) {
  12. if (this.fields == null) {
  13. this.fields = new ArrayList<>(fields);
  14. } else {
  15. this.fields.addAll(fields);
  16. }
  17. if (selectAllCache != null) {
  18. selectAllCache.clear();
  19. }
  20. invalidateCompileCache();
  21. }
  22. return this;
  23. }

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

  1. /**
  2. * Add more {@link Field Fields} to be selected
  3. *
  4. * @param fields the additional Fields to be selected
  5. * @return this Query object, to allow chaining method calls
  6. */
  7. public Query selectMore(Field<?>... fields) {
  8. if (immutable) {
  9. return fork().selectMore(fields);
  10. }
  11. if (!isEmpty(fields)) {
  12. if (this.fields == null) {
  13. this.fields = new ArrayList<>();
  14. }
  15. SquidUtilities.addAll(this.fields, fields);
  16. if (selectAllCache != null) {
  17. selectAllCache.clear();
  18. }
  19. invalidateCompileCache();
  20. }
  21. return this;
  22. }

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

  1. public void testSubqueryJoin() {
  2. StringProperty managerName = Employee.NAME.as("managerName");
  3. Query query = Query
  4. .fromSubquery(Query.select(Employee.MANAGER_ID).from(Employee.TABLE).groupBy(Employee.MANAGER_ID),
  5. "subquery");
  6. query.selectMore(managerName);
  7. query.join(Join.inner(Employee.TABLE, query.getTable().qualifyField(Employee.MANAGER_ID).eq(Employee.ID)))
  8. .orderBy(Employee.MANAGER_ID.asc());
  9. SquidCursor<Employee> cursor = database.query(Employee.class, query);
  10. try {
  11. assertEquals(3, cursor.getCount());
  12. cursor.moveToFirst();
  13. assertEquals("bigBird", cursor.get(managerName));
  14. cursor.moveToNext();
  15. assertEquals("cookieMonster", cursor.get(managerName));
  16. cursor.moveToNext();
  17. assertEquals("bert", cursor.get(managerName));
  18. } finally {
  19. cursor.close();
  20. }
  21. }

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

  1. public void testCoalesce() {
  2. model2.setFirstName(null); // coalesce should find last name
  3. database.persist(model2);
  4. model3.setFirstName(null).setLastName(null); // coalesce should find fallback name
  5. database.persist(model3);
  6. final String FALLBACK_NAME = "Squid";
  7. Function<String> coalesce = Function.coalesce(TestModel.FIRST_NAME, TestModel.LAST_NAME, FALLBACK_NAME);
  8. StringProperty modelName = StringProperty.fromFunction(coalesce, "name");
  9. // select *, coalesce(firstName, lastName, 'Squid') as name from testModel order by _id asc;
  10. SquidCursor<TestModel> cursor = database.query(TestModel.class, Query.select(TestModel.PROPERTIES)
  11. .selectMore(modelName).orderBy(TestModel.ID.asc()));
  12. assertEquals(3, cursor.getCount());
  13. try {
  14. cursor.moveToFirst();
  15. assertEquals(model1.getFirstName(), cursor.get(modelName));
  16. cursor.moveToNext();
  17. assertEquals(model2.getLastName(), cursor.get(modelName));
  18. cursor.moveToNext();
  19. assertEquals(FALLBACK_NAME, cursor.get(modelName));
  20. } finally {
  21. cursor.close();
  22. }
  23. }

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

  1. public void testJoinOnLiteralValue() {
  2. TestModel modelOne = new TestModel().setFirstName("Sam").setLastName("Bosley");
  3. TestModel modelTwo = new TestModel().setFirstName("Kevin").setLastName("Lim");
  4. TestModel modelThree = new TestModel().setFirstName("Jonathan").setLastName("Koren");
  5. Thing thingOne = new Thing().setFoo("Thing1").setBar(5);
  6. Thing thingTwo = new Thing().setFoo("Thing2").setBar(-1);
  7. Thing thingThree = new Thing().setFoo("Thing3").setBar(100);
  8. database.persist(modelOne);
  9. database.persist(modelTwo);
  10. database.persist(modelThree);
  11. database.persist(thingOne);
  12. database.persist(thingTwo);
  13. database.persist(thingThree);
  14. Query query = Query.select(TestModel.FIRST_NAME, TestModel.LAST_NAME).selectMore(Thing.FOO, Thing.BAR)
  15. .from(TestModel.TABLE)
  16. .join(Join.inner(Thing.TABLE, Thing.BAR.gt(0)));
  17. SquidCursor<TestModel> cursor = database.query(TestModel.class, query);
  18. try {
  19. assertEquals(6, cursor.getCount());
  20. for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
  21. assertTrue(cursor.get(Thing.BAR) > 0);
  22. }
  23. } finally {
  24. cursor.close();
  25. }
  26. }

相关文章