1 /*
2 * EL4J, the Extension Library for the J2EE, adds incremental enhancements to
3 * the spring framework, http://el4j.sf.net
4 * Copyright (C) 2010 by ELCA Informatique SA, Av. de la Harpe 22-24,
5 * 1000 Lausanne, Switzerland, http://www.elca.ch
6 *
7 * EL4J is published under the GNU Lesser General Public License (LGPL)
8 * Version 2.1. See http://www.gnu.org/licenses/
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Lesser General Public License for more details.
14 *
15 * For alternative licensing, please contact info@elca.ch
16 */
17 package ch.elca.el4j.services.persistence.jpa.criteria;
18
19 import java.util.List;
20
21 /**
22 * Specifies the retrieval methods applicable to a standard SELECT query.
23 *
24 * @svnLink $Revision: 4253 $;$Date: 2010-12-21 11:08:04 +0100 (Di, 21. Dez 2010) $;$Author: swismer $;$URL: https://el4j.svn.sourceforge.net/svnroot/el4j/branches/el4j_3_1/el4j/framework/modules/hibernate/src/main/java/ch/elca/el4j/services/persistence/jpa/criteria/SelectQuery.java $
25 *
26 * @author Simon Stelling (SST)
27 */
28 public interface SelectQuery {
29
30 /**
31 * returns the results in the given range.
32 * @param firstRow first row
33 * @param maxNumOfRows max number of rows returned
34 * @return 'maxNumOfRows' records, starting from index 'firstRow'
35 */
36 public List<?> getResultList(int firstRow, int maxNumOfRows);
37
38 /**
39 * returns all results.
40 * @param <T> entity type
41 * @param clazz entity class
42 * @return all results.
43 */
44 public <T> List<T> getResultList(Class<T> clazz);
45
46 /**
47 * type-safe variant of {@link SelectQuery#getResultList(int, int)}.
48 * @param <T> entity type
49 * @param clazz entity class
50 * @param firstRow first row
51 * @param maxNumOfRows max number of rows returned
52 * @return 'maxNumOfRows' records, starting from index 'firstRow'
53 */
54 public <T> List<T> getResultList(Class<T> clazz, int firstRow, int maxNumOfRows);
55
56 /**
57 * @param <T> entity type
58 * @param clazz entity class
59 * @return single result entity
60 */
61 public <T> T getSingleResult(Class<T> clazz);
62
63 }