|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.sf.jasperreports.engine.query.JRAbstractQueryExecuter
net.sf.jasperreports.engine.query.JRJpaQueryExecuter
public class JRJpaQueryExecuter
EJBQL query executer that uses the Java Persistence API.
To use EJBQL in queries, anjavax.persistence.EntityManager is needed.
When running or filling reports the em need to be supplied with the named parameter JRJpaQueryExecuterFactory.PARAMETER_JPA_ENTITY_MANAGER.
Example:
Map parameters = new HashMap();
EntityManager em = emf.createEntityManager();
parameters.put(JRJpaQueryExecuterFactory.PARAMETER_JPA_ENTITY_MANAGER, em);
JasperRunManager.runReportToPdfFile(fileName, parameters);
When dealing with large result sets, pagination can be used by setting the JRJpaQueryExecuterFactory.PROPERTY_JPA_QUERY_PAGE_SIZE property in the report template.
Example:
<property name="net.sf.jasperreports.ejbql.query.page.size" value="100"/>
Implementation-specific query hints can be set either using report properties in the report template,
or by supplying the named parameter JRJpaQueryExecuterFactory.PARAMETER_JPA_QUERY_HINTS_MAP
containing a java.util.Map with named/value query hints.
Example using report property:
<property name="net.sf.jasperreports.ejbql.query.hint.fetchSize" value="100"/>
The name of the query hint need to be prefixed with net.sf.jasperreports.ejbql.query.hint. (JRJpaQueryExecuterFactory.PROPERTY_JPA_QUERY_HINT_PREFIX).
Above example will set a query hint with the name fetchSize and the String value 100.
Example using map:
Map hints = new HashMap();
hints.put("fetchSize", Integer.valueOf(100));
hints.put("anyName", anyObject());
Map parameters = new HashMap();
EntityManager em = emf.createEntityManager();
parameters.put(JRJpaQueryExecuterFactory.PARAMETER_JPA_ENTITY_MANAGER, em);
parameters.put(JRJpaQueryExecuterFactory.PARAMETER_JPA_QUERY_HINTS_MAP, hints);
JasperRunManager.runReportToPdfFile(fileName, parameters);
Note that when using report properties only String values can be set as query hint.
When using a query hints map, any Object can be set as value.
JRJpaQueryExecuterFactory| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class net.sf.jasperreports.engine.query.JRAbstractQueryExecuter |
|---|
JRAbstractQueryExecuter.QueryParameter |
| Field Summary |
|---|
| Fields inherited from class net.sf.jasperreports.engine.query.JRAbstractQueryExecuter |
|---|
CLAUSE_POSITION_ID, clauseFunctions, dataset |
| Constructor Summary | |
|---|---|
JRJpaQueryExecuter(JasperReportsContext jasperReportsContext,
JRDataset dataset,
Map<String,? extends JRValueParameter> parameters)
|
|
JRJpaQueryExecuter(JRDataset dataset,
Map<String,? extends JRValueParameter> parameters)
Deprecated. Replaced by JRJpaQueryExecuter(JasperReportsContext, JRDataset, Map). |
|
| Method Summary | |
|---|---|
boolean |
cancelQuery()
Cancels the query if it's currently running. |
void |
close()
Closes resources kept open during the data source iteration. |
JRDataSource |
createDatasource()
Executes the query and creates a JRDataSource out of the result. |
protected void |
createQuery(String queryString)
Creates the EJBQL query object. |
protected JRDataSource |
createResultDatasource()
Creates a data source out of the query result. |
protected String |
getEjbqlParameterName(String parameterName)
|
protected String |
getParameterReplacement(String parameterName)
Returns the replacement text for a query parameter. |
List<?> |
getResultList()
Runs the query by calling javax.persistence.Query.getResultList. |
List<?> |
getResultList(int firstIndex,
int resultCount)
Returns a page of the query results by calling javax.persistence.Query.getResultList. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public JRJpaQueryExecuter(JasperReportsContext jasperReportsContext,
JRDataset dataset,
Map<String,? extends JRValueParameter> parameters)
public JRJpaQueryExecuter(JRDataset dataset,
Map<String,? extends JRValueParameter> parameters)
JRJpaQueryExecuter(JasperReportsContext, JRDataset, Map).
| Method Detail |
|---|
public JRDataSource createDatasource()
throws JRException
JRQueryExecuterJRDataSource out of the result.
JRDataSource wrapping the query execution result.
JRExceptionprotected void createQuery(String queryString)
queryString - the query stringprotected JRDataSource createResultDatasource()
public void close()
JRQueryExecutercreateDatasource.
public boolean cancelQuery()
throws JRException
JRQueryExecuter
true if and only if the query was running and it has been canceled
JRExceptionprotected String getParameterReplacement(String parameterName)
JRAbstractQueryExecuter
getParameterReplacement in class JRAbstractQueryExecuterparameterName - the parameter name
JRQueryChunk.TYPE_PARAMETERprotected String getEjbqlParameterName(String parameterName)
public List<?> getResultList()
javax.persistence.Query.getResultList.
All the result rows are returned.
public List<?> getResultList(int firstIndex,
int resultCount)
javax.persistence.Query.getResultList.
firstIndex - the index of the first row to returnresultCount - the number of rows to return
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||