Pregunta: | 48998 - JASPERREPORT + HIBERNATE |
Autor: | Nicolas Barone |
Tengo una pregunta, como hago para pasarle la coneccion al momento de llamar a la sentencia:
JasperPrint jasperPrint = JasperFillManager.fillReport(fileName,parameters); Yo en mi caso como uso Hibernate, como hago? Map parameters = new HashMap(); parameters.put(JRHibernateQueryExecuterFactory.PARAMETER_HIBERNATE_SESSION, session); Transaction transaction = session.beginTransaction(); Encontre esto pero al momento de visualizarlo no muestra el reporte, lo muestra vacio. Me podrian ayudar? |
Respuesta: | Nicolas Barone |
Aca les mando el código, estoy usando MyEclipse + hibernate+ JasperReport 1.2.5 con todas las librerias de este.
//Ruta en donde se encuentra el .jasper String fileName = "D:\\reports\\PruebaAddingGroup.jasper"; //Ruta destino del pdf String destFileNamePdf = "D:\\temp\\PruebaAddingGroup.pdf"; Transaction tx = null; Session sess = null; try{ SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); sess = sessionFactory.openSession(); tx = sess.beginTransaction(); Map parameters = new HashMap(); /* PARAMETER_HIBERNATE_SESSION = Parámetro incorporado que lleva a cabo el valor de la sesión de Hibernate que se utilizará para crear la consulta. */ parameters.put(JRHibernateQueryExecuterFactory.PARAMETER_HIBERNATE_SESSION, sess); //Preparacion del reporte (en esta etapa se inserta: .jasper, el valor del query en el reporte, y la conexion). JasperPrint jasperPrint = JasperFillManager.fillReport(fileName,parameters,sess.connection()); //Creación del PDF JasperExportManager.exportReportToPdfFile(jasperPrint, destFileNamePdf); //Imprimimos en pantalla el reporte JasperViewer.viewReport(jasperPrint); }catch (HibernateException e) { if(tx != null)tx.rollback(); e.printStackTrace(); }catch(JRException e){ e.printStackTrace(); }finally{ sess.close(); } |