public void testQueryBuilderLimit() { insert(10); List<TestEntity> result = dao.queryBuilder().limit(3).orderAsc(Properties.SimpleInt).list(); assertEquals(3, result.size()); assertEquals(getSimpleInteger(0), result.get(0).getSimpleInteger().intValue()); assertEquals(getSimpleInteger(1), result.get(1).getSimpleInteger().intValue()); assertEquals(getSimpleInteger(2), result.get(2).getSimpleInteger().intValue()); }
public void testQueryUnsetOffset() { Query<TestEntity> query = dao.queryBuilder().limit(1).build(); try{ query.setOffset(1); fail("Offset must be defined in builder first"); } catch(RuntimeException expected) { //OK } }
public void testQueryBuilderOffsetAndLimit() { insert(10); List<TestEntity> result = dao.queryBuilder().offset(3).limit(3).orderAsc(Properties.SimpleInt).list(); assertEquals(3, result.size()); assertEquals(getSimpleInteger(3), result.get(0).getSimpleInteger().intValue()); assertEquals(getSimpleInteger(4), result.get(1).getSimpleInteger().intValue()); assertEquals(getSimpleInteger(5), result.get(2).getSimpleInteger().intValue()); }
public void testQueryBuilderOffsetAndLimitWithWhere() { insert(10); List<TestEntity> result = dao.queryBuilder().where(Properties.SimpleInteger.gt(getSimpleInteger(1))).offset(2) .limit(3).orderAsc(Properties.SimpleInt).list(); assertEquals(3, result.size()); assertEquals(getSimpleInteger(4), result.get(0).getSimpleInteger().intValue()); assertEquals(getSimpleInteger(5), result.get(1).getSimpleInteger().intValue()); assertEquals(getSimpleInteger(6), result.get(2).getSimpleInteger().intValue()); }
@Override public void run() { QueryBuilder<TestEntity> builder = dao.queryBuilder(); builder.where(Properties.SimpleInteger.eq(getSimpleInteger(1))); builder.limit(10).offset(20); queryFromOtherThread = builder.build(); } };
public void testQueryLimitAndSetParameter() { Query<TestEntity> query = dao.queryBuilder().limit(5).offset(1).build(); try{ query.setParameter(0, (Object) null); fail("Offset/limit parameters must not interfere with user parameters"); } catch(RuntimeException expected) { //OK } }
public void testQueryOffsetAndLimit() { insert(10); Query<TestEntity> query = dao.queryBuilder().where(Properties.SimpleInteger.gt(getSimpleInteger(-1))).offset(-1) .limit(-1).orderAsc(Properties.SimpleInt).build(); query.setParameter(0, getSimpleInteger(1)); query.setLimit(3); query.setOffset(2); List<TestEntity> result = query.list(); assertEquals(3, result.size()); assertEquals(getSimpleInteger(4), result.get(0).getSimpleInteger().intValue()); assertEquals(getSimpleInteger(5), result.get(1).getSimpleInteger().intValue()); assertEquals(getSimpleInteger(6), result.get(2).getSimpleInteger().intValue()); }
public void testJoinMixedParameterValues() { prepareData(); QueryBuilder<RelationEntity> queryBuilder = relationEntityDao.queryBuilder(); queryBuilder.where(RelationEntityDao.Properties.SimpleString.like(""), RelationEntityDao.Properties.SimpleString.ge("")); Join<RelationEntity, TestEntity> join = queryBuilder.join(RelationEntityDao.Properties.TestIdNotNull, TestEntity.class); join.where(Properties.SimpleInt.le(0)); queryBuilder.offset(0).limit(0); Query<RelationEntity> query = queryBuilder.build(); query.setParameter(0, "entity-%"); query.setParameter(1, "entity-4"); query.setParameter(2, 6); query.setOffset(1); query.setLimit(99); List<RelationEntity> entities = query.list(); assertEquals(2, entities.size()); assertEquals("entity-5", entities.get(0).getSimpleString()); assertEquals("entity-6", entities.get(1).getSimpleString()); }
public static <T extends CoreEntity> List<T> fetchEntitiesWithPropertiesAndOrderAndLimit(Class<T> c, int limit, Property whereOrder, int order, Property properties[], Object... values){ if (values == null || properties == null) throw new NullPointerException("You must have at least one value and one property"); if (values.length != properties.length) throw new IllegalArgumentException("Values size should match properties size"); QueryBuilder<T> qb = daoSession.queryBuilder(c); qb.where(properties[0].eq(values[0])); if (values.length > 1) for (int i = 0 ; i < values.length ; i++) qb.where(properties[i].eq(values[i])); if (whereOrder != null && order != -1) switch (order) { case ORDER_ASC: qb.orderAsc(whereOrder); break; case ORDER_DESC: qb.orderDesc(whereOrder); break; } if (limit != -1) qb.limit(limit); return qb.listLazy(); }
public List<Message> fetchMessagesForThreadWithID (long threadID, int limit, Date olderThan) { List<Message> list ; QueryBuilder<Message> qb = daoSession.queryBuilder(Message.class); qb.where(MessageDao.Properties.ThreadId.eq(threadID)); // Making sure no null messages infected the sort. qb.where(MessageDao.Properties.Date.isNotNull()); qb.where(MessageDao.Properties.SenderId.isNotNull()); if(olderThan != null) { qb.where(MessageDao.Properties.Date.lt(olderThan.getTime())); } qb.orderDesc(MessageDao.Properties.Date); if (limit != -1) qb.limit(limit); list = qb.list(); return list; }
/** Fetch messages list from the db for current thread, Messages will be order Desc/Asc on demand.*/ @Keep public List<Message> getMessagesWithOrder(int order, int limit) { QueryBuilder<Message> qb = daoSession.queryBuilder(Message.class); qb.where(MessageDao.Properties.ThreadId.eq(getId())); if(order == DaoCore.ORDER_ASC) { qb.orderAsc(MessageDao.Properties.Date); } else if(order == DaoCore.ORDER_DESC) { qb.orderDesc(MessageDao.Properties.Date); } // Making sure no null messages infected the sort. qb.where(MessageDao.Properties.Date.isNotNull()); if (limit > 0) { qb.limit(limit); } Query<Message> query = qb.build().forCurrentThread(); return query.list(); }
private long getNewQueueNumber() { List<QueueItem> items = queueItemDao.queryBuilder() .orderDesc(QueueItemDao.Properties.QueueNumber) .limit(1) .list(); if(items.isEmpty()) return 1; return items.get(0).getQueueNumber() + 1; }
@Override protected List<Tag> getItems(int page) { QueryBuilder<Tag> qb = getQueryBuilder() .limit(PER_PAGE_LIMIT); if(page > 0) { qb.offset(PER_PAGE_LIMIT * page); } return detachObjects(qb.list()); }
@Override public boolean isExistInCityWeather(String cityName) { List<WeatherEntity> res = mWeatherDao.queryBuilder(). where(WeatherEntityDao.Properties.CityName.eq(cityName)). limit(1).list(); return !isListEmpty(res); }
@Override protected List<Article> getItems(int page) { QueryBuilder<Article> qb = getQueryBuilder() .limit(PER_PAGE_LIMIT); if(page > 0) { qb.offset(PER_PAGE_LIMIT * page); } return removeContent(detachObjects(qb.list())); }
.orderDesc(ArticleDao.Properties.ArticleId).limit(dbQuerySize);
.where(ChatDao.Properties.ChatType.eq(chatType), ChatDao.Properties.Id.lt(latestId)) .whereOr(ChatDao.Properties.FromId.eq(chatId), ChatDao.Properties.ToId.eq(chatId)) .limit(10) .orderDesc(ChatDao.Properties.Time) .build() chats = chatDao.queryBuilder() .where(ChatDao.Properties.ChatType.eq(chatType), ChatDao.Properties.Id.lt(latestId), ChatDao.Properties.ToId.eq(chatId)) .limit(10) .orderDesc(ChatDao.Properties.Time) .build()
.where(ChatDao.Properties.ChatType.eq(chatType)) .whereOr(ChatDao.Properties.FromId.eq(chatId), ChatDao.Properties.ToId.eq(chatId)) .limit(5) .orderDesc(ChatDao.Properties.Time) .build() chats = chatDao.queryBuilder() .where(ChatDao.Properties.ChatType.eq(chatType), ChatDao.Properties.ToId.eq(chatId)) .limit(5) .orderDesc(ChatDao.Properties.Time) .build()
queryBuilder.limit(dbQuerySize);
private Long getAdjacentArticle(boolean previous) { QueryBuilder<Article> qb = articleDao.queryBuilder(); if(previous) qb.where(ArticleDao.Properties.ArticleId.gt(article.getArticleId())); else qb.where(ArticleDao.Properties.ArticleId.lt(article.getArticleId())); if(contextFavorites != null) qb.where(ArticleDao.Properties.Favorite.eq(contextFavorites)); if(contextArchived != null) qb.where(ArticleDao.Properties.Archive.eq(contextArchived)); if(previous) qb.orderAsc(ArticleDao.Properties.ArticleId); else qb.orderDesc(ArticleDao.Properties.ArticleId); List<Article> l = qb.limit(1).list(); if(!l.isEmpty()) { return l.get(0).getId(); } return null; }