====== Curso de Hibernate con Spring ====== Bienvenidos al curso sobre Hibernate con Spring. Este curso pretende enseñarte como crear la parte servidora de una aplicación en Java con Hibernate y Spring. Mi nombre es Lorenzo González y soy Profesor de FP en el [[http://www.fpmislata.com/|CIPFP Mislata]] en Mislata(Valencia). Este curso es la continuación de mi otro [[http://www.cursoangularjs.es/doku.php|Curso de AngularJS y REST con Java y Spring]] ===== Unidades ===== El curso está dividido en 8 unidades y cada unidad contiene una serie de temas. * [[unidades:01_introduccion_orm:00_start|1. Introduccion al ORM]]: Lo básico de empezar a contar de un ORM. * [[unidades:02_hibernate:00_start|2. Hibernate]]: Empezar a trabajar con Hibernate. * [[unidades:03_relaciones:00_start|3. Relaciones]]: Relaciones "uno a uno", "uno a muchos", etc. con Hibernate * [[unidades:04_claves_primarias_y_tipos_datos:00_start|4. Claves Primarias y Tipos de datos]]: Claves primarias, enumerados, componentes, etc. * [[unidades:05_hibernate_query_language:00_start|5. Hibernate Query Language (HQL)]]: El lenguaje de consultas de Hibernate * [[unidades:06_objetos_validaciones:00_start|6. Objetos y Validaciones]]: Validaciones, reglas de negocio, claves únicas, etc. * [[unidades:07_arquitectura:00_start|7. Arquitectura]]: Patrón DAO,Excepciones e HibernateUtil. * [[unidades:08_spring:00_start|8. Spring]] Spring con Hibernate, OpenSessionInView y Spring MVC. ===== Ejemplos ===== Cada una de las unidades dispone de una serie de ejemplos de código. Todo el código se encuentra en el repositorio de github [[https://github.com/logongas/cursohibernate]]. En caso de no disponer de git en el ordenador cliente se puede descargar en un fichero zip todos los ejemplos desde {{https://github.com/logongas/cursohibernate/archive/master.zip}} ===== Ejercicios ===== Cada unidad tiene asociados una serie de ejercicios que podemos encontrar en [[ejercicios:00_start]]. ===== Por donde empezar ===== Depende de los conocimientos que tengas puedes saltarte algunas unidades. * Si no tienes ni idea, lo mejor es seguir el curso tal y como está. * Si quieres ir al grano con algo sencillo de Hibernate pasa directamente a la unidad [[unidades:02_hibernate:00_start|2. Hibernate]] * Si ya sabes algo de Hibernate pero quieres saber algo más avanzado te recomiendo que pases directamente a la unidad [[unidades:07_arquitectura:00_start|7. Arquitectura]]. * Tambien te recomiendo que mires las siguientes páginas [[unidades:06_objetos_validaciones:02_validaciones&#metodos_java_de_validacion|métodos de validación]] , [[unidades:06_objetos_validaciones:04_listeners|listerners]] y [[unidades:07_arquitectura:02_excepciones|excepciones al validar]] * Por último está la unidad de Spring con Hibernate. [[unidades:08_spring:00_start|8. Spring]] ===== Patrones ===== En algunas unidades se hará uso de los siguientes patrones de diseño y de buenas prácticas: * [[patrones:osiv]] * [[patrones:dao]] * [[patrones:di]] * [[patrones:excepciones]] * [[patrones:pool_conexiones]] ===== Que falta ===== El curso no cubre todo Hibernate. Hay muchas cosas que se han quedado fuera. Aunque es especialmente importante la parte de [[http://docs.jboss.org/hibernate/orm/4.1/manual/en-US/html/ch10.html|Herencia]] , [[http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html/ch12.html|Criteria]] y [[http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html/ch06.html|Cache de 2º nivel]]. ===== Mas información ===== La información de referencia a cerca de Hibernate y otras tecnologías que vamos a ver se puede encontrar en [[referencias]].