Как устранить исключение «не удалось лениво инициализировать коллекцию ролей» в Hibernate ⇐ JAVA
Как устранить исключение «не удалось лениво инициализировать коллекцию ролей» в Hibernate
У меня такая проблема:
org.hibernate.LazyInitializationException: не удалось лениво инициализировать коллекцию ролей: mvc3.model.Topic.comments, сеанс не был закрыт или сеанс был закрыт
Вот модель:
@Entity @Table(name = "T_TOPIC") Публичный класс Тема { @Идентификатор @GeneratedValue(стратегия=GenerationType.AUTO) частный внутренний идентификатор; @ManyToOne @JoinColumn(name="USER_ID") частный автор пользователя; @Enumerated(EnumType.STRING) частный тег themeTag; частное имя строки; частный строковый текст; @OneToMany(mappedBy = "тема", cascade = CascadeType.ALL) комментарии частной коллекции = новый LinkedHashSet(); ... публичная коллекция getComments() { возвращать комментарии; } } Контроллер, вызывающий модель, выглядит следующим образом:
@Controller @RequestMapping(value = "/topic") публичный класс TopicController { @Autowired частный сервис TopicService; частный статический окончательный регистратор Logger = LoggerFactory.getLogger(TopicController.class); @RequestMapping(value = "/details/{topicId}", метод = RequestMethod.GET) общедоступные сведения ModelAndView (@PathVariable(value="topicId") int id) { Тема subjectById = service.findTopicByID(id); Collection commentList = themeById.getComments(); Hashtable modelData = новая Hashtable(); modelData.put("тема", themeById); modelData.put("commentList", commentList); вернуть новый ModelAndView("/topic/details", modelData); } } JSP-страница выглядит следующим образом:
Просмотреть тему [*]${item.getText()} Исключение возникает при просмотре jsp. В строке с циклом c:forEach
У меня такая проблема:
org.hibernate.LazyInitializationException: не удалось лениво инициализировать коллекцию ролей: mvc3.model.Topic.comments, сеанс не был закрыт или сеанс был закрыт
Вот модель:
@Entity @Table(name = "T_TOPIC") Публичный класс Тема { @Идентификатор @GeneratedValue(стратегия=GenerationType.AUTO) частный внутренний идентификатор; @ManyToOne @JoinColumn(name="USER_ID") частный автор пользователя; @Enumerated(EnumType.STRING) частный тег themeTag; частное имя строки; частный строковый текст; @OneToMany(mappedBy = "тема", cascade = CascadeType.ALL) комментарии частной коллекции = новый LinkedHashSet(); ... публичная коллекция getComments() { возвращать комментарии; } } Контроллер, вызывающий модель, выглядит следующим образом:
@Controller @RequestMapping(value = "/topic") публичный класс TopicController { @Autowired частный сервис TopicService; частный статический окончательный регистратор Logger = LoggerFactory.getLogger(TopicController.class); @RequestMapping(value = "/details/{topicId}", метод = RequestMethod.GET) общедоступные сведения ModelAndView (@PathVariable(value="topicId") int id) { Тема subjectById = service.findTopicByID(id); Collection commentList = themeById.getComments(); Hashtable modelData = новая Hashtable(); modelData.put("тема", themeById); modelData.put("commentList", commentList); вернуть новый ModelAndView("/topic/details", modelData); } } JSP-страница выглядит следующим образом:
Просмотреть тему [*]${item.getText()} Исключение возникает при просмотре jsp. В строке с циклом c:forEach
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение