Hace algún tiempo me puse a jugar con Hibernate y no me causó demasiada buena impresión. Me daba muchos problemas, las herramientas que bajaba parecian bastante descuidadas, no me funcionaba nada bien sin tener que pelearme con ello y un sin fin de descalabros. Pero estos días atrás me entró remordimiento de conciencia. De aquella, había empezado supongo que de mala manera, sin saber nada de hibernate, tratando de arrancar las herramientas de "ingeniería inversa", es decir, tratar de sacar de las tablas de base de datos ya creadas los bean de java y los xml de mapeo. Así que hace unos días me decidí a retomar el tema desde cero, empezando con la documentación de Hibernate y siguiéndola más o menos paso a paso.
Pues creo que me reafirmo en mi idea. La documentación, aunque están claros los conceptos que explica, deja bastante que desear en cuanto a cómo arrancar el ejemplo. Ahi van algunas pegas:
- Si te bajas hibernate, no vienen ahí todos los jar necesarios. Aparte del conector con la base de datos, se echa en falta una implementación para slf4j-api. Hibernate trae la Api, pero no la implementación y no funciona el ejemplo sin una implementación. Sí, la documentación dice que es necesaria una implementación en el punto 3.5, pero el ejemplo y el arranque del mismo está en el punto 1.2. No parece el orden adecuado eso de "tú arranca, que más adelante te diré qué está mal".
- Si intentas la configuración con maven, en la documentación no pone el groupId a usar, sino una variable ${groupId} que no está definida en ningún sitio. Bueno, no cuesta mucho inventarse un valor y sacarlo, pero podrían haberlo puesto. Por cierto, tampoco pone la versión.
- Si sigues con maven, no se baja el jar de javassist, sea lo que sea eso. El caso es que en el pom.xml debes poner la dependencia a mano y en la documentación no lo indica.
- Además, por supuesto, falta la dependencia de la implementación de slf4j-log4j (o el logger que quieras). La podemos poner sin problemas, pero hay que tener cuidado, porque la versión que se ponga de dicha implementación debe coincidir con la versión de slf4j-api de la que depende hibernate y, que por supuesto, tampoco se ve directamente en ningún sitio.
En fin, que el ejemplo muy bien, pero ponerlo en marcha cuesta unos cuantos ensayo, error y googlear, añadiendo dependencias y jars, según nos van saliendo errores. No me extrañan nada comentarios como este de Nicolás.
Así que como siempre, copiando de la documentación y ampliándola precisamente en estas pequeñas pegas, ahí va mi "Hola mundo con hibernate", en el que espero quede más claro exactamente que jars necesitamos y cómo arrancar la aplicación de la documentación.
Y de paso, sigo leyendo la documentación dichosa, a ver si aprendo algo de Hibernate. Lo que he leido y probado hasta ahora me está gustando bastante.
Hola…no he podido resistirme a comentar este post, he de reconocer que hace no mucho tiempo que sigo diariamente este blog! y me encanta…porque tratas de muchos temas con los que actualmente trabajo, pero vamos a lo que vamos…
Actualmente estoy desarrollando un proyecto con JSF-Ajax e hibernate…bajo Tomcat,dios mio!!! todo ello con Eclipse, y es una locura…ya no hablo de la implementacion, creo que me lleva mas tiempo la configuracion del Eclipse que todo lo demas! es horrible, odioso, frustrante, y todo lo que te puedas imaginar, llegue a pensar que era cosa mia…pero bueno, creo que eso no es del todo cierto! esto es un galimatias de versiones entremezcladas entre si! que si el icefaces no va con X, y el JDK no va con Y…pero X e Y son necearios para Z…una locura! ahora mis problemas estan con hibernate…y sus jar…asique..comprendo absolutamente este post!
Un Saludo!
Pingback: Diario de Programación » Blog Archive » Hibernate: Annotations vs XML
Hola!
Actualmente estoy sufriendo el proceso de comprobación de la puesta en marcha de la teoria de hibernate, vamos, configurar, cagarme en todos los jars que no encuentro, en los errores de compilación,… etc.
He visto tu tutorial y me parece MUY excueto y encima, usas MySQL, más sencillo usar primero la base de datos en memoria y quitarte el rollo de tener que instalar MySQL, por que manda huevos que para probar una cosa haya que instalar 15.
Toy quemaoo, llevo 2 días con tutoriales y ninguno funciona. Que si versiones, que si ….. puaag.
Pues nada, que ante todo se agradecen entradas como esta, de queja y tutoriales para los novatos como yo.
Salu2.