@Test @Transactional @Rollback(false) public void job(){ LocalDate now = LocalDate.now(); int year = now.getYear(); // 获取今年之前所有没冻结的用户 List<User> users = repository.findAllUsersByFrozenYear(year); System.out.println(users.size()); year = year+1; // 在userannualtask中生成新的数据 for (User u:users) { UserAnnualTask t = task.save(new UserAnnualTask(u,year)); } }
这里一直发现新生成的对象无法保存,最后才发现是@Rollback的问题。
junit 单元测试事务会自动回滚。通过@Rollback(true)注解来实现,默认是true,事务会回滚,可以不写。false时事务不会回滚,数据会写到数据库中。