我正在使用Spring data
,它很容易使用,但我无法控制它,因为我在那里遇到错误
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: entity.Qualite.fonctions, could not initialize proxy - no Session
我知道FetchType.EAGER
会起作用,但我想保持懒惰。
那么我如何控制 spring data
@RequestMapping(value="/loadfonction")
public @ResponseBody
Set<Fonction> loadfonction(Map<String, Object> model, HttpServletRequest request) {
Set<Fonction> fonctions = qualiteRepo.findOne(Integer.valueOf(request.getParameter("idquality"))).getFonctions();
System.out.println(fonctions.size());
return fonctions;
}
我什至尝试了 @Transactional 注释,但它不起作用:
@Transactional
@RequestMapping(value="/loadfonction")
最佳答案
这是尝试使用 spring mvc 框架打开 View 时的常见问题。控制方法会在 View 显示 session 之前关闭 session 。 (试图将 View 排除在业务逻辑之外)要解决这个问题,您可以使用 OpenSessionInViewFilter 类。
这里有一篇关于如何实现它的文章:
http://blog.cloudmate.pl/2010/09/hibernates-open-session-in-view-in.html
关于spring - Spring 数据的延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21295958/