@Override @DB() public List<T> search(final SearchCriteria<T> sc, final Filter filter) { return search(sc, filter, null, false); }
@Override @DB() public List<T> lockRows(final SearchCriteria<T> sc, final Filter filter, final boolean exclusive) { return search(sc, filter, exclusive, false); }
@Override @DB() public List<T> search(final SearchCriteria<T> sc, final Filter filter, final boolean enableQueryCache) { return search(sc, filter, null, false, enableQueryCache); }
@Override @DB() public T lockOneRandomRow(final SearchCriteria<T> sc, final boolean exclusive) { final Filter filter = new Filter(1); final List<T> beans = search(sc, filter, exclusive, true); return beans.isEmpty() ? null : beans.get(0); }
@Override @DB() public Pair<List<T>, Integer> searchAndCount(final SearchCriteria<T> sc, final Filter filter) { List<T> objects = search(sc, filter, null, false); Integer count = getCount(sc); // Count cannot be less than the result set but can be higher due to pagination, see CLOUDSTACK-10320 if (count < objects.size()) { count = objects.size(); } return new Pair<List<T>, Integer>(objects, count); }
@Override @DB() public Pair<List<T>, Integer> searchAndDistinctCount(final SearchCriteria<T> sc, final Filter filter) { List<T> objects = search(sc, filter, null, false); Integer count = getDistinctCount(sc); // Count cannot be 0 if there is at least a result in the list, see CLOUDSTACK-10320 if (count == 0 && !objects.isEmpty()) { // Cannot assume if it's more than one since the count is distinct vs search count = 1; } return new Pair<List<T>, Integer>(objects, count); }
@Override @DB() public Pair<List<T>, Integer> searchAndDistinctCount(final SearchCriteria<T> sc, final Filter filter, final String[] distinctColumns) { List<T> objects = search(sc, filter, null, false); Integer count = getDistinctCount(sc, distinctColumns); // Count cannot be 0 if there is at least a result in the list, see CLOUDSTACK-10320 if (count == 0 && !objects.isEmpty()) { // Cannot assume if it's more than one since the count is distinct vs search count = 1; } return new Pair<List<T>, Integer>(objects, count); }
/** * If the query is supposed to return a list, use this. * @return List of result objects */ @SuppressWarnings("unchecked") public List<K> list() { finalize(); if (isSelectAll()) { @SuppressWarnings("rawtypes") SearchCriteria sc1 = create(); return (List<K>)_dao.search(sc1, null); } else { SearchCriteria<K> sc1 = create(); return _dao.customSearch(sc1, null); } }
@Override @DB() public List<T> search(final SearchCriteria<T> sc, final Filter filter, final boolean enableQueryCache) { return search(sc, filter, null, false, enableQueryCache); }
@Override @DB() public List<T> lockRows(final SearchCriteria<T> sc, final Filter filter, final boolean exclusive) { return search(sc, filter, exclusive, false); }
@Override @DB() public List<T> search(final SearchCriteria<T> sc, final Filter filter) { return search(sc, filter, null, false); }
@Override @DB() public T lockOneRandomRow(final SearchCriteria<T> sc, final boolean exclusive) { final Filter filter = new Filter(1); final List<T> beans = search(sc, filter, exclusive, true); return beans.isEmpty() ? null : beans.get(0); }
@Override @DB() public Pair<List<T>, Integer> searchAndCount(final SearchCriteria<T> sc, final Filter filter) { final List<T> objects = search(sc, filter, null, false); final Integer count = getCount(sc); return new Pair<>(objects, count); }
@Override @DB() public Pair<List<T>, Integer> searchAndDistinctCount(final SearchCriteria<T> sc, final Filter filter) { final List<T> objects = search(sc, filter, null, false); final Integer count = getDistinctCount(sc); return new Pair<>(objects, count); }
/** * If the query is supposed to return a list, use this. * * @return List of result objects */ public List<K> list() { finalize(); if (isSelectAll()) { final SearchCriteria sc1 = create(); return (List<K>) _dao.search(sc1, null); } else { final SearchCriteria<K> sc1 = create(); return _dao.customSearch(sc1, null); } } }