休眠临时数据存储

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>

【讨论】:

以上是关于休眠临时数据存储的主要内容,如果未能解决你的问题,请参考以下文章

将休眠数据类型映射到混合类型存储过程的输出

使用休眠为相互关联的表存储数据

无法使用休眠将引用键存储在表中

存储在会话数据中与存储在 Sql 数据库中以获取临时数据

oracle 怎么在存储过程中创建一个临时表,在里面插入数据,再查找这个临时表的所有数据,最后drop这个表。

oracle存储过程中临时表的使用,该怎么处理