
En esta mini guía vamos a ver como configurar iReport para tirar reportes sobre Hibernate en un proyecto Java existente. Sin más preambulos, a los bifes:
Paso 1- Descargar iReport
La página deja mucho que desear, así que el link directo es: iReport Download, en mi caso lo voy a bajar para windows, pero no debe ser problema bajarlo para otras plataformas. Una vez que tenemos el paquete lo instalamos. Es medio pesadito (85 Mb en su versión 4.1.1) así que preparate para esperar, otro punto interesante es que para descargarlo NO necesita registrarse.
Paso 2- Configurar nuestro proyecto con Hibernate en iReport
Éste sin dudas es el paso más complicado y en el que más se puede renegar, así que atentos. Tenemos que agregar las rutas de nuestros componentes al classPath de la aplicación, son 4 cosas, así que vamos a Herramientas > Opciones > iReport > Classpath y agregamos:

1: Driver de la conexión a la BD
En mi caso es un Oracle así que lo que tengo que agregar es el JAR “ojdbc14.jar”, así simplemente no anda, tras mucho probar, solo lo logré, poniendo este jar en la carpeta “Java\jdk1.7.0\jre\lib\ext” del JDK !!
2: Archivos de Map de Hibernate .hbm.xml
Agregamos todos los mappings en xml del proyecto (solo los que están incluidos en hibernate.cfg.xml). Nota: Yo agregue los que ya estaban compilados, osea en el proyecto de Netbeans en build/
3: Agregamos Hibernate.cfg.xml
No mucho que agregar en este punto (Idem nota anterior)
4: Agregamos las clases compiladas
Los .class de TODA la aplicación y el .JAR compilado
En mi caso, quedaría algo así:

Paso 3- Creando un Reporte Nuevo y Probar la conexión
Para esto vamos al gigante botón que tenemos de fondo como Step 1, y seleccionamos “Hibernate Conection”

Le damos un nombre a la conexión y des-marcamos “Use Hibernate Annotations”. Si todo funcionó correctamente, apretamos en el botón de Test y tenemos que ver el siguiente mensaje de victoria!

Paso 4- Creando Querys Visualmente
Una vez creado el reporte con el wizard, si vamos al Query Editor, tenemos la posibilidad de utilizar directamente HQL (ojo que no está marcado por defecto), si armamos una consulta muy simple, vemos como inmediatamente va a buscar los datos, te muestra los BEAN incluidos y sus campos para facilitarnos el armado junto con su tipo. De esta manera es mucho más dinámico crear los reportes de una manera correcta y que no lleven problemas al proyecto, ya que salen directamente compilados.

Conclusión: Las ventajas de tener iRerpot correctamente configurado para Hibernate son muchas, ya que nos facilita el armado y testeado del reporte previo compilado y así no arrastrar errores a nuestro proyecto, evitando soluciones horrorosas como usar SQL directamente. El proceso tiene a fallar la mayoría de las veces y el punto débil de la cadena es el paso 2. Leer muy atentamente y probar cambios si no funciona. En caso de que tengan algún problema o no se entienda bien algo, preguntenmelo y lo voy a intentar responder lo anter posible.