org.hibernate.LazyInitializationException: could not initialize proxy [com.springdata.pojo.Roles#1] - no Session
没开事物因为springdata底层是hibernate如果你是多表关联映射时
是必须要开启事物进行增删改查的不开就会报错
注意重点:在关系映射里面开启级联也是必须要开始事物操作不让报错
-------------------》》》》》@Transactional在测试类上加一个这个注解即可
实例------------------------
@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional//用级联必须开事物不开报错 不开事物查询报lazy异常
public class DemoApplicationTests {
@Autowired
private RoleRepoJPA roleJpa;
@Autowired
private UserRepoJPA userJpa;
@Test
public void testSaveUsers(){
//创建一个用户
User user = new User();
user.setName("张三");
//创建一个角色
Role role = new Role();
role.setRname("DBA");
//关联
//role.getUsers().add(user);
user.setRoles(role);
//保存
this.roleJpa.save(role);
this.userJpa.save(user);
}
@Test
public void contextLoads() {
Optional<User> User = this.userJpa.findById(1);
System.out.println(User.get().getName());
Role R = User.get().getRoles();
System.out.println(R);
}
}