Autoescaneo de entidades de Hibernate con Spring

4
11705

Autoescaneo de entidades de Hibernate con Spring

 

Índice de contenidos.

1. Introducción

En este breve tutorial vamos a ver una utilidad de Spring que nos servirá para autoescanear las entidades de Hibernate (@Entity) de manera que no tengamos que añadirlas al fichero hibernate.cfg.xml lo que nos ayudará a escribir menos código de configuración.

Para hacer las pruebas me basaré en el código fuente del siguiente tutorial.

El código fuente del ejemplo lo puedes descargar de aquí.

2. Entorno

  • MacBook Pro 15′ (2.4 GHz Intel Core i5, 4GB DDR3 SDRAM).
  • Sistema Operativo: Mac OS X Snow Leopard 10.6.4
  • JDK 1.6.0_20
  • Spring 3.0.4
  • Hibernate Core 3.3.2.GA

3. Configuración

Lo primero, y único, que hay que hacer es configurar el bean AnnotationSessionFactoryBean como sessionFactory en nuestro fichero de configuración de Spring, el applicationContext.xml. Este bean es una subclase de LocalSessionFactoryBean y se encarga de escanear los paquetes en busca de las entidades que tengamos.



	
	
	
		classpath:${hibernate.cfg.file}
	
	
		
			${hibernate.dialect}
		
	
	
		
			com.autentia.tutoriales.entity
		
	


A través de la propiedad packagesToScan indicamos el paquete a partir del cual se encuentran nuestras entidades del modelo de datos anotadas con @Entity.

Otra posibilidad es indicarle a Spring directamente nuestras entidades a través de la propiedad annotatedClasses aunque esta opción no nos aporta tanto como la anterior ya que nos obliga a meter una a una todas las entidades que tengamos en el proyecto, lo mismo que teníamos que hacer anteriormente en el fichero hibernate.cfg.xml.



	
	
	
		classpath:${hibernate.cfg.file}
	
	
		
			${hibernate.dialect}
		
	
	
	    
	       com.autentia.tutoriales.entity.Footballer
	    
    


4. Conclusiones

Una vez más comprobamos los beneficios que nos aporta el Framework Spring, para nosotros fundamental en nuestros desarrollos. De manera sencilla mediante la configuración de uno de sus beans podemos escanear el classpath en busca de las entidades para facilitarnos en gran medida la configuración.

Espero que te haya servido de ayuda.

Un saludo. Juan.

4 COMENTARIOS

  1. Antes de ejecutar cualquier acción sobre una tabla , se podria saber cuales de sus campos pueden adminitir valores nulos u otros detalles sin usar annotations en los beans.

    Lo que busco es validar antes de insertar que alguna columna(en la tabla) no admita valores nulos y cancelar asi la inserción.

    Gracias de antemano.

  2. Hola Juan,

    Muchas gracias por el tutorial!!!.

    Solo un apunte, en el valor de la colección de packagesToScan, por defecto el escaneo no es recursivo. Si quieres que sea recursivo para que, por ejemplo, te escanee todas las entidades del paquete com.autentia.wuija y de todos los paquetes que cuelgan de él, tienes que usar la siguiente sintaxis: com.autentia.wuija.**.*.

    Un saludo.

    Jose.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad