有没有什么方法可以按范围定义hibernate.cfg.xml中的对象,而不是一个接一个?Hibernate + Spring MVC:对象映射配置
例如,Spring,你可以通过这样的注释定义所有的控制器:
<context:component-scan base-package="crm.controller" />
我能否以同样的方式定义Hibernate类?或者它必须一个接一个地定义?
感谢您使用
有没有什么方法可以按范围定义hibernate.cfg.xml中的对象,而不是一个接一个?Hibernate + Spring MVC:对象映射配置
例如,Spring,你可以通过这样的注释定义所有的控制器:
<context:component-scan base-package="crm.controller" />
我能否以同样的方式定义Hibernate类?或者它必须一个接一个地定义?
感谢您使用
如果您使用的是Spring MVC,则可以在设置sessionFactory时对其进行配置。如果您正在使用HBM文件:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mappingResources">
<list>
<value>file1.hbm.xml</value>
<value>file2.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties" ref="hibernateProperties"/>
</bean>
如果您使用的注释类:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.me.domain">
<property name="hibernateProperties" ref="hibernateProperties"/>
</bean>
尝试:
<mapping package="com.mycompany.model" />
,而不是一组元素:
<mapping class="com.mycompany.model.EntytyOne" />
<mapping class="com.mycompany.model.EntytyTwo" />
你为什么不试试这个。我已经在这个springDAOcontext.xml
配置<bean id="csiSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate/hibernate.cfg.xml</value>
</property>
<property name="dataSource" ref="DataSource"/>
<property name="mappingResources">
<list>
<value>hibernate/*</value>
</list>
<property>
据我记得,休眠,因为它是外的箱子,不支持“包sanning”发现你的域类。但是考虑到您将Hibernate与Spring MVC集成在一起,您可以在您的Spring上下文配置文件中注释您的类(标准JPA + Hibernate特定注释)并指定包含Hibernate实体类的包。以下是我在以前的项目配置的:
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="org.springmvc.domain" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="show_sql">true</prop>
<prop key="log_level">DEBUG</prop>
</props>
</property>
</bean>
的“packagesToScan”属性定义春天将有Hibernate的扫描,以发现实体类的包。
IM使用JPA注解@实体,applicationContext.xml中的代码是:
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.yourcompany.module" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
</props>
</property>
</bean>
包路径“com.yourcompany.module”是您的java实体包,例如:
package com.yourcompany.module;
@Entity
class MyEntity{
private Long id;
set get...
}
点
相关的问题: http://stackoverflow.com/q/1413190/211197 http://stackoverflow.com/q/2419802/211197 – maksimov 2012-04-06 14:20:21