休眠临时数据存储
Posted
技术标签:
【中文标题】休眠临时数据存储【英文标题】:Hibernate temporary datastore 【发布时间】:2013-01-09 02:50:34 【问题描述】:我在 spring-hibernate DAO 上进行单元测试...使用配置
@ContextConfiguration(
locations =
"classpath:test-applicationContext.xml"
)
但它看起来像是在与实际数据库进行交易。 如何在不使用实际数据库的情况下使用临时数据存储
【问题讨论】:
【参考方案1】:在一个单独的文件中定义您的数据存储,并将该 xml 文件包含在您的邮件应用程序 xml 中。测试时,包含一个单独的 xml 文件来保存指向另一个数据库(如 hsql)的数据存储。那么这将是您的主 applicationContext.xml 引用的数据源。
【讨论】:
但是如果我在测试应用程序上下文中使用 Postgres 那么我需要安装 Postgres 来运行测试吗?【参考方案2】:谢谢大家,我使用了 H2 并让它工作了:
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.h2.Driver" />
<property name="url"
value="jdbc:h2:mem:processdb;INIT=RUNSCRIPT FROM 'classpath:create.sql'" />
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
<property name="configurationClass">
<value>org.hibernate.cfg.AnnotationConfiguration</value>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.H2Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<tx:annotation-driven />
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="stateDAO" class="com.tutorial.jquery.dao.impl.StateDAOImpl"></bean>
<bean id="stateService" class="com.tutorial.jquery.service.impl.StateServiceImpl"></bean>
【讨论】:
以上是关于休眠临时数据存储的主要内容,如果未能解决你的问题,请参考以下文章