Hibernate - 未在jar中扫描的弹簧注释实体

时间:2010-10-20 17:20:37

标签: hibernate spring

我有一个包含注释实体类的包,我将其导入到我的Web项目中。 当tomcat部署项目时,不会扫描jar中的实体类以进行注释。有没有办法告诉spring在jar文件中搜索带注释的类?即:

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

3 个答案:

答案 0 :(得分:8)

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

第二个例子:

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

将两个通配符放在后面以扫描所有子包。 (例如:“test.package。**”)

答案 1 :(得分:6)

如果您的意思是@Entity注释类,<context:component-scan>与它们无关。 Hibernate发现了@Entity个类,所以你需要配置Hibernate,而不是Spring。

如果您通过JPA使用Hibernate(即您拥有persistence.xml),则需要将以下行添加到persistence.xml,以便扫描/WEB-INF/lib/yourFileWithEntities.jar实体类:

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

答案 2 :(得分:1)

使用spring3.1,或使用<class>com.***.***<class>标记在persistence.xml中添加实体类。