2010-10-20 10 views
6

Ich habe ein Paket mit annotierten Entitätsklassen, die ich in mein Webprojekt importiere. Wenn Tomcat das Projekt implementiert, wird die Entity-Klasse, die sich im Jar befindet, nicht nach Annotationen durchsucht. Gibt es eine Möglichkeit zu sagen, dass Spring in einer JAR-Datei nach annotierten Klassen sucht? das heißt:Hibernate - Frühjahr annotierte Entitäten, die nicht aus jar gescannt werden

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

vergaß ich hinzufügen - ich bin mit Maven die Gläser –

Antwort

6

Wenn Sie @Entity kommentierten Klassen bedeuten, <context:component-scan> nichts mit ihnen zu tun hat. @Entity Klassen werden von Hibernate erkannt, daher müssen Sie Hibernate und nicht Spring konfigurieren.

Wenn Sie Hibernate über JPA verwenden (dh Sie haben persistence.xml), müssen Sie die folgende Zeile in persistence.xml hinzuzufügen, um /WEB-INF/lib/yourFileWithEntities.jar für Entitätsklassen scannen:

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

Ich hatte erstellen WEB-INF/lib/my-Paket-0.0.1-SNAPSHOT.jar hinzuzufügen, um für sie zu arbeiten .. – Niko

8

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

das zweite Beispiel:

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

Platzieren Sie zwei Platzhalter, um alle Unterpakete zu scannen. (Beispiel: "test.package. **")

+0

Für Hibernate 4: org.springframework.orm.hibernate4.LocalSessionFactoryBean erledigt den Job :) – Tobias

1

Verwenden Sie spring3.1 oder verwenden Sie <class>com.***.***<class>, um in Ihrer persistence.xml eine Entitätsklasse hinzuzufügen.

Verwandte Themen