Autoescaneo de entidades de Hibernate con Spring

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.

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.

Comentarios

4 respuestas

  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

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

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

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

  • Responsable: IZERTIS S.A.
  • Finalidad: Envío información de carácter administrativa, técnica, organizativa y/o comercial sobre los productos y servicios sobre los que se nos consulta.
  • Legitimación: Consentimiento del interesado
  • Destinatarios: Otras empresas del Grupo IZERTIS. Encargados del tratamiento.
  • Derechos: Acceso, rectificación, supresión, cancelación, limitación y portabilidad de los datos.
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad

Ingeniero en Informática, especialidad en Ingeniería del Software.

¿Quieres publicar en Adictos al trabajo?

Te puede interesar

22/06/2026

Juan Antonio Jiménez Torres

Vamos a instrumentalizar un SDD para un microservicio bancario. En este artículo sobre SDD - Spec Driven Development, instrumentalizado sobre OpenSpec vamos a construir una PoC de algo más serio que una tabla periódica. Un microservicio bancario muy simplificado que gestione cuentas y permita hacer transferencias

16/06/2026

Juan Antonio Jiménez Torres

Este es el segundo artículo sobre SDD, Spec Driven Development, instrumentalizado sobre OpenSpec. Pero esta vez nos acercaremos usando softwere gratuito. Por un lado OpenCode en lugar de ClaudeCode y usando el modelo gratuito Gemma4 de Google en lugar de otros de pago.

08/06/2026

Juan Antonio Jiménez Torres

Aprenderemos sobre SDD – Spec Driven Development instrumentalizado sobre OpenSpec. Haremos un primer acercamiento usando ClaudeCode con Sonnet, para luego, en un artículo posterior pasarnos a la versión gratuita de OpenCode con Gemma4