@SuppressWarnings("unchecked") public <T> List<T> findAll(Selector selector) throws DbException { if (!tableIsExist(selector.getEntityType())) return null; String sql = selector.toString(); long seq = CursorUtils.FindCacheSequence.getSeq(); findTempCache.setSeq(seq); Object obj = findTempCache.get(sql); if (obj != null) { return (List<T>) obj; } List<T> result = new ArrayList<T>(); Cursor cursor = execQuery(sql); if (cursor != null) { try { while (cursor.moveToNext()) { T entity = (T) CursorUtils.getEntity(this, cursor, selector.getEntityType(), seq); result.add(entity); } findTempCache.put(sql, result); } catch (Throwable e) { throw new DbException(e); } finally { IOUtils.closeQuietly(cursor); } } return result; }