2010-10-20 22 views
6

Tengo un paquete que contiene clases de entidad anotadas que importo en mi proyecto web. Cuando tomcat implementa el proyecto, la clase de entidad que se encuentra en el contenedor no se analiza en busca de anotaciones. ¿Hay alguna manera de decirle a Spring que busque clases anotadas dentro de un archivo jar? es decir:Hibernar: entidades con anotaciones de primavera no escaneadas desde jar

<context:component-scan base-package="{path to jar or something}"/> 
+0

me olvidó añadir - Estoy utilizando Maven para crear los frascos –

Respuesta

6

Si se refiere a @Entity clases anotadas, <context:component-scan> no tiene nada que ver con ellos. Las clases @Entity son descubiertas por Hibernate, por lo que debe configurar Hibernate, no Spring.

Si utiliza Hibernate a través de la APP (es decir, usted tiene persistence.xml), es necesario agregar la siguiente línea al persistence.xml con el fin de escanear /WEB-INF/lib/yourFileWithEntities.jar para las clases de entidad:

<jar-file>lib/yourFileWithEntities.jar</jar-file> 
+0

he tenido que añadir WEB-INF/lib/mi-paquete-0.0.1-SNAPSHOT.jar con el fin de que funcione .. Para – Niko

8

buscar: http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/orm/hibernate3/annotation/AnnotationSessionFactoryBean.html

el segundo ejemplo:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource"/> 
    <property name="packagesToScan" value="test.package"/> 
</bean>

Coloque dos comodines para escanear todos los subpaquetes. (por ejemplo: "test.package. **")

+0

Hibernate 4: org.springframework.orm.hibernate4.LocalSessionFactoryBean hace el trabajo :) – Tobias

1

use spring3.1, o use la etiqueta <class>com.***.***<class> para agregar la clase de entidad en su persistence.xml.

Cuestiones relacionadas