Eu passei por um problema que era usar a mesma conexão que eu usava no projeto para usar no meu relatório com o ireports.
Para resolver esse problema usei esse código.
public class ReportsRepository {
private EntityManager entityManager;
public ReportsRepository(EntityManager entityManager) {
this.entityManager = entityManager;
}
public Connection getConnection() {
try {
EntityManagerImpl factory = (EntityManagerImpl) entityManager;
SessionFactoryImpl sessionFactoryImpl = (SessionFactoryImpl) factory.getSession().getSessionFactory();
return sessionFactoryImpl.getConnectionProvider().getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
}