net.sf.jasperreports.engine.data

## Class JRJpaDataSource

- java.lang.Object
- - net.sf.jasperreports.engine.data.JRAbstractBeanDataSource
  - - net.sf.jasperreports.engine.data.JRJpaDataSource

- All Implemented Interfaces:
    JRDataSource, JRRewindableDataSource

      public class JRJpaDataSource
      extends JRAbstractBeanDataSource

  Java Persistence API data source that uses `javax.persistence.Query.getResultList()`.

  The query result can be paginated by not retrieving all the rows at once.

  Fields are mapped to values in the result following these rules:
  - if the query returns a single object/bean (e.g. `SELECT m FROM Movie m` or `SELECT NEW MovieDescription(m.title, m.genre) FROM Movie m`), then the fields are mapped to bean property names.
  - if the query returns multiple objects per row (e.g. `SELECT m.title, m.gender FROM Movie m`), the fields are mapped using the following syntax: COLUMN_index[.property], with the indexes starting from 1. Example mappings: COLUMN_1, COLUMN_2, COLUMN_2.title, COLUMN_2.movie.title.
  Version:
    $Id: JRJpaDataSource.java 5878 2013-01-07 20:23:13Z teodord $
  Author:
    Marcel Overdijk (marceloverdijk@hotmail.com)
  See Also:
    `JRJpaQueryExecuterFactory.PROPERTY_JPA_QUERY_PAGE_SIZE`

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static interface` | `JRJpaDataSource.FieldValueReader`
    `protected class` | `JRJpaDataSource.IndexPropertyReader`
    `protected class` | `JRJpaDataSource.IndexReader`
    `protected class` | `JRJpaDataSource.PropertyReader`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.lang.Object` | `currentRow`

    - ### Fields inherited from class net.sf.jasperreports.engine.data.JRAbstractBeanDataSource

      `CURRENT_BEAN_MAPPING, FIELD_DESCRIPTION_PROPERTY_NAME_PROVIDER, FIELD_NAME_PROPERTY_NAME_PROVIDER, propertyNameProvider`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `JRJpaDataSource(JRJpaQueryExecuter queryExecuter, int pageSize)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `fetchPage()`
    `java.lang.Object` | `getFieldValue(JRField field)` Gets the field value for the current position.
    `protected JRJpaDataSource.FieldValueReader` | `getFieldValueReader(JRField field)`
    `void` | `moveFirst()` Moves back to the first element in the data source.
    `boolean` | `next()` Tries to position the cursor on the next element in the data source.

    - ### Methods inherited from class net.sf.jasperreports.engine.data.JRAbstractBeanDataSource

      `getBeanProperty, getFieldValue, getPropertyName, isCurrentBeanMapping`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### currentRow

          protected java.lang.Object currentRow

  - ### Constructor Detail

    - #### JRJpaDataSource

          public JRJpaDataSource(JRJpaQueryExecuter queryExecuter,
                         int pageSize)

  - ### Method Detail

    - #### fetchPage

          protected void fetchPage()

    - #### next

          public boolean next()

      Description copied from interface: `JRDataSource`
      Tries to position the cursor on the next element in the data source.
      Returns:
        true if there is a next record, false otherwise

    - #### moveFirst

          public void moveFirst()

      Description copied from interface: `JRRewindableDataSource`
      Moves back to the first element in the data source.

    - #### getFieldValue

          public java.lang.Object getFieldValue(JRField field)
                                         throws JRException

      Description copied from interface: `JRDataSource`
      Gets the field value for the current position.
      Returns:
        an object containing the field value. The object type must be the field object type.
      Throws:
        `JRException`

    - #### getFieldValueReader

          protected JRJpaDataSource.FieldValueReader getFieldValueReader(JRField field)

© 2001-2010 Jaspersoft Corporation www.jaspersoft.com