Spring JPA Junit 关闭自动回滚

时间:2022-10-13 10:23:50

因为用了JPA配合Hibernate ,采用注解默认是开启了LayzLoad也就是懒加载,所以不得不在Junit的单元测试上加上@Transactional注解

这样Spring会自动为当前线程开启Session,这样在单元测试里面懒加载才不会因为访问完Repo之后,出现session not found.

但是单元测试里面如果加上了@Transactional 会自动回滚事务,需要在单元测试上面加上

@Rollback(false)

 @Test
@Transactional
@Rollback(false)
public void testTagForArticle(){
Article article = articleRepo.getOne(3);
for(Tag tag:article.getTags()){
System.out.println(tag.getTagName());
}
}

这样才能在数据库里面看到结果,自学踩的坑不是一般的多啊。