2010-10-20 9 views
6

Ho un pacchetto contenente classi di entità annotate che importare nel mio progetto web. Quando tomcat distribuisce il progetto, le classi di entità presenti nel vaso non vengono scansionate per le annotazioni. c'è un modo per dire a primavera di cercare classi annotate all'interno di un file jar? vale a dire:Ibernazione: entità con annotazione a molla non scansionate dal barattolo

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

Ho dimenticato di aggiungere - Sto usando Maven per creare i vasi –

risposta

6

Se vuoi dire @Entity classi annotate, <context:component-scan> non ha nulla a che fare con loro. Le classi @Entity vengono scoperte da Hibernate, quindi è necessario configurare Hibernate, non Spring.

Se si utilizza Hibernate tramite JPA (cioè avete persistence.xml), è necessario aggiungere la seguente riga al persistence.xml al fine di eseguire la scansione /WEB-INF/lib/yourFileWithEntities.jar per le classi di entità:

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

ho dovuto aggiungere WEB-INF/lib/my-package-0.0.1-SNAPSHOT.jar in modo per farlo funzionare .. – Niko

8

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

secondo esempio:

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

Metti due caratteri jolly per esaminare tutti i sottopacchetti. (es: "test.package. **")

+0

Per Hibernate 4: org.springframework.orm.hibernate4.LocalSessionFactoryBean fa il lavoro :) – Tobias

1

utilizzare spring3.1 oppure utilizzare il tag <class>com.***.***<class> per aggiungere la classe di entità nel file persistence.xml.

Problemi correlati