【发布时间】:2013-02-27 20:27:48
【问题描述】:
我有一个 Person 类:
@Entity
public class Person {
@Id
@GeneratedValue
private Long id;
@ManyToMany(fetch = FetchType.LAZY)
private List<Role> roles;
// etc
}
具有惰性的多对多关系。
在我的控制器中
@Controller
@RequestMapping("/person")
public class PersonController {
@Autowired
PersonRepository personRepository;
@RequestMapping("/get")
public @ResponseBody Person getPerson() {
Person person = personRepository.findOne(1L);
return person;
}
}
而PersonRepository就是这段代码,按照this guide写的
public interface PersonRepository extends JpaRepository<Person, Long> {
}
但是,在这个控制器中 我实际上需要惰性数据。如何触发它的加载?
尝试访问它会失败
延迟初始化角色集合失败: no.dusken.momus.model.Person.roles,无法初始化代理 - 否 会话
或其他例外情况,具体取决于我的尝试。
我的xml-description,以备不时之需。
谢谢。
【问题讨论】:
-
你能写一个方法,它会创建一个查询来获取一个给定参数的
Person对象吗?在该Query中,包含fetch子句并为该人加载Roles。
标签: java spring hibernate jpa spring-data