有沒有什麼方法可以按範圍定義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