我们有一个基于Spring 3.2.4和Hibernate 4.2.3的Web应用程序.它是使用appfuse 2.2.1原型生成的.根据可用的文档,我们可以使用SessionFactory的packagesToScan属性来动态获取实体类并设置sessionFactory.但是,我们面临一个问题,我们必须在hibernate.cfg.xml中明确提到实体类名,以便hibernate识别它.我在论坛上找不到合适的答案,所以在这里发帖.可能我对其工作原理的理解可能不正确,因此欢迎使用任何指针.
谢谢
applicationContext.xml中
<?xml version="1.0" encoding="UTF-8"?>
<beans -- namespace declarations here
default-lazy-init="true">
<!-- Activates scanning of @Autowired -->
<context:annotation-config/>
<!-- Activates scanning of @Repository and @Service -->
<context:component-scan base-package="com.xyz"/>
</beans>
Run Code Online (Sandbox Code Playgroud)
的hibernate.cfg.xml
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<mapping class="com.xyz.model.Address" />
<mapping class="com.xyz.model.Company" />
<mapping class="com.xyz.model.CompanyBilling" />
<!-- BIG LIST OF MY ENTITY CLASSES -->
</session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)
的applicationContext-dao.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans -- namespace declarations here
default-lazy-init="true">
<bean class="org.springframework.orm.hibernate4.HibernateExceptionTranslator"/>
<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>
<!-- Hibernate SessionFactory …Run Code Online (Sandbox Code Playgroud)