请选择 进入手机版 | 继续访问电脑版

Redis中国用户组(CRUG)论坛

 找回密码
 立即注册

扫一扫,访问微社区

搜索
热搜: 活动 交友 discuz
查看: 364|回复: 1

spring-data-redis怎么注解事务?

[复制链接]
  • TA的每日心情
    郁闷
    2017-12-5 01:44
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    3

    主题

    5

    帖子

    185

    积分

    注册会员

    Rank: 2

    积分
    185
    发表于 2017-11-27 01:21:44 | 显示全部楼层 |阅读模式
    spring-data-redis怎么注解事务?
    我在jUnit中无法@Transactional,一启动就报“无法确定是哪个PlatformTransactionManager”。
    我的项目配有hibernateTransactionManager、myBatisTransactionManager,
    Redis的TransactionManager是怎么配置的?@Transactional(“这里填什么???”)只有写明是哪个TransactionManager才不会报错,以及交由Spring事务管理,并在jUnit里测试完Rollback一下。

    代码如下:
    import java.util.Date;
    import java.util.concurrent.TimeUnit;

    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.test.annotation.Rollback;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    import org.springframework.test.context.web.WebAppConfiguration;

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration({"classpath:applicationContext.xml"})
    @WebAppConfiguration("src/main/webapp")
    //@Transactional
    @Rollback(true)
    public class RedisForValueDaoTest {
            @Autowired
            private RedisForValueDao<String, Object> redisForValueDao;
            private String key = "say";
           
            @Test
            public void test() {
                    get();
                    set();
            }
           
            public void get() {
                    System.out.println("[get][" + key + "][" + redisForValueDao.get(key) + "]");
                    System.out.println("[size][" + redisForValueDao.size(key) + "]");
                    System.out.println("[hasKey][" + redisForValueDao.hasKey(key) + "]");
            }
           
            public void set() {
                    redisForValueDao.set(key, "Hello World");
                    System.out.println("[set后][" + key + "][" + redisForValueDao.get(key) + "]");
                    System.out.println("[set后][有效期(秒)][" + redisForValueDao.getExpire(key) + "]");
                   
                    redisForValueDao.set(key, "Happy Life", 60, TimeUnit.MINUTES);
                    System.out.println("[set后][" + key + "][" + redisForValueDao.get(key) + "]");
                    System.out.println("[set后][有效期(分)][" + redisForValueDao.getExpire(key, TimeUnit.MINUTES) + "]");
                   
                    Date expire = new Date(System.currentTimeMillis() + (7200 * 1000));
                    System.out.println("[expire前][" + expire.getTime() + "]");
                    System.out.println("[expire中][" + redisForValueDao.expire(key, expire) + "]");
                    System.out.println("[expire后][有效期(秒)][" + redisForValueDao.getExpire(key) + "]");
            }
    }

    异常错误:
    java.lang.IllegalStateException: Failed to retrieve PlatformTransactionManager for @Transactional test for test context [DefaultTestContext@4358cfda testClass = RedisForValueDaoTest, testInstance = com.platform.base.common.redis.RedisForValueDaoTest@6c381cae, testMethod = test@RedisForValueDaoTest, testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@7bb613c0 testClass = RedisForValueDaoTest, locations = '{classpath:applicationContext.xml}', classes = '{}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{}', contextCustomizers = set[[empty]], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.test.context.web.WebDelegatingSmartContextLoader', parent = [null]]].
  • TA的每日心情
    郁闷
    2017-12-5 01:44
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    3

    主题

    5

    帖子

    185

    积分

    注册会员

    Rank: 2

    积分
    185
     楼主| 发表于 2017-11-30 10:52:00 | 显示全部楼层
    没有人知道吗?
    这论坛好凄凉~~~
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    阿里云
    阿里云

    Archiver|手机版|小黑屋|Redis中国用户组 ( 京ICP备15003959号

    GMT+8, 2018-4-19 21:35 , Processed in 0.221313 second(s), 30 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表