在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ Spring Hibernate 測試事務(wù)不能回滾

Spring Hibernate 測試事務(wù)不能回滾

測試用例無法回滾數(shù)據(jù),直接插入數(shù)據(jù)庫了?

applicationContext.xml

<context:annotation-config></context:annotation-config>

<!--dataSource-->
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close"
      p:driverClassName="com.mysql.jdbc.Driver"
      p:url="jdbc:mysql://192.168.6.131:3306/sampledb?characterEncoding=UTF-8"
      p:username="hyx"
      p:password="sghyx52413"/>

<!--sessionFactory-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"
      p:dataSource-ref="dataSource"
      p:mappingLocations="classpath*:*.hbm.xml">

    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">
                org.hibernate.dialect.MySQLDialect
            </prop>
            <prop key="hibernate.show_sql">
                true
            </prop>
        </props>
    </property>

</bean>

<bean class="org.springframework.orm.hibernate5.HibernateTemplate">
    <property name="sessionFactory" ref="sessionFactory"/>
    <property name="checkWriteOperations" value="false"/>
</bean>

<bean id="txManager"
      class="org.springframework.orm.hibernate5.HibernateTransactionManager"
      p:sessionFactory-ref="sessionFactory"/>

<tx:annotation-driven transaction-manager="txManager"/>



UserTest.java

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateTemplate;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;

import static org.junit.Assert.*;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
@Transactional(transactionManager = "txManager")
@Rollback()
public class UserTest extends AbstractJUnit4SpringContextTests {


@Autowired
private HibernateTemplate template;

@Test
public void saveTest() {
    User user = new User("Test1", "Test1");

    template.save(user);

}
}
回答
編輯回答
殘淚

需要使用事務(wù)需要繼承AbstractTransactionalJUnit4SpringContextTests類,或者不繼承類
而不是繼承AbstractJUnit4SpringContextTests。

2018年9月9日 00:18