All'interno di JasperReports è possibile utilizzare query JDBC native o query EJBQL.
Quando si utilizza il secondo, il codice dovrebbe essere simile a questo (da JRJpaQueryExecuter api):
Map parameters = new HashMap();
EntityManager em = emf.createEntityManager();
parameters.put(JRJpaQueryExecuterFactory.PARAMETER_JPA_ENTITY_MANAGER, em);
JasperRunManager.runReportToPdfFile(fileName, parameters);
Se si ha realmente bisogno la connessione JDBC underlaying il modo per raggiungerlo varia a seconda della implementazione JPA che si sta utilizzando .
EclipseLink (JPA 2.0):
entityManager.getTransaction().begin();
java.sql.Connection connection = entityManager.unwrap(java.sql.Connection.class);
...
entityManager.getTransaction().commit();
(Non sarà necessario per iniziare e si impegnano le operazioni per la segnalazione)
fonte
2011-11-02 09:15:09
Il set JPA è impostato per utilizzare un'origine dati? –
SÌ viene utilizzato origine dati –