Dentro de JasperReports puede usar consultas JDBC nativas o consultas EJBQL.
Cuando se utiliza este último, su código debería tener este aspecto (de JRJpaQueryExecuter API):
Map parameters = new HashMap();
EntityManager em = emf.createEntityManager();
parameters.put(JRJpaQueryExecuterFactory.PARAMETER_JPA_ENTITY_MANAGER, em);
JasperRunManager.runReportToPdfFile(fileName, parameters);
Si realmente necesita la conexión JDBC subyacente de la forma de lograr que varía dependiendo de la aplicación APP que está utilizando .
EclipseLink (JPA 2.0):
entityManager.getTransaction().begin();
java.sql.Connection connection = entityManager.unwrap(java.sql.Connection.class);
...
entityManager.getTransaction().commit();
(Usted no tendrá que comenzar y comprometerse para informar las transacciones)
¿Está configurado su JPA para utilizar un origen de datos? –
SÍ usa fuentes de datos –