Spring JPA 无法扫描多JAR包中@Entity类的问题

问题描述:项目中使用Maven管理,将项目划分为多个子模块,每个子模块中都自己模块的实体类。 在主模块中使用Spring JPA的配置如下:
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource"/> 
    <property name="persistenceUnitName" value="persistence"/>
    <property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter"/> 
    <property name="jpaProperties">
        <props>
            <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.SingletonEhCacheRegionFactory</prop>
            <prop key="net.sf.ehcache.configurationResourceName">ehcache/ehcache-hibernate-local.xml</prop>
            <prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop>
        </props>
    </property>
</bean>

这样配置会引起一个问题:子模块JAR中实体类不会被扫描。

问题的解决方案如下:
1.  删除对应的entityManagerFactory中的属性:
    <property name="persistenceUnitName" value="persistence"/>;
2.  增加新的entityManagerFactory属性:
    <property name="packagesToScan" value="自己的Entity类包名"/>
3.  删除persistence对应的配置文件;

猜你喜欢

转载自francis-java.iteye.com/blog/1807789