如何在Spring 应用程序上下文中配置org.springframework.orm.hibernate3.LocalSessionFactoryBean类的Hibernate类映射?我想将会话工厂类映射从以下内容移至相应的Spring会话工厂bean,以便消除。 hibernate.cfg.xmlhibernate.cfg.xml
hibernate.cfg.xml
档案hibernate.cfg.xml:
<?xml version='1.0' encoding='utf-8'?> <!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 resource="Queries.hbm.xml" /> <mapping class="com.company.app.common.model.Account" /> <mapping class="com.company.app.common.model.AccountCategory" /> <mapping class="com.company.app.common.model.AssetType" /> <mapping class="com.company.app.common.model.Book" /> <mapping class="com.company.app.model.AssetTypeCategory" /> <!-- ... --> </session-factory> </hibernate-configuration>
档案spring-application-context.xml:
spring-application-context.xml
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configurationClass"> <value>org.hibernate.cfg.AnnotationConfiguration</value> </property> <property name="configLocation"> <value>classpath:hibernate.cfg.xml</value> </property> <!-- Instead of the above, I want to use the following. Where and how do I define the class mappings so that I may eliminate hibernate.cfg.xml? --> <-- <property name="dataSource" ref="dataSource" /> <property name="mappingResources"> <list> <value>Queries.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="dialect">org.hibernate.dialect.Oracle10gDialect</prop> </props> </property> --> </bean>
如果您使用的是带有JPA注释的类,则可以使用AnnotationSessionFactoryBean代替LocalSessionFactoryBean,并将这些类直接注入到Spring bean中:
AnnotationSessionFactoryBean
LocalSessionFactoryBean
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="annotatedClasses"> <list> <value>com.company.app.common.model.Account</value> <value>com.company.app.common.model.AccountCategory</value> <value>com.company.app.common.model.AssetType</value> <value>com.company.app.common.model.Book</value> <value>com.company.app.model.AssetTypeCategory</value> </list> </property> <property name="mappingResources"> <list> <value>Queries.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="dialect">org.hibernate.dialect.Oracle10gDialect</prop> </props> </property> </bean>