Попытка добавить это в ваш CSS-файл.
body.page-id-1001 div.banner {
overflow:scroll;
}
Я просто предполагаю, но от отслеживания стека кажется, что к toString обращаются SearchRule. SearchRule имеет какие-либо дочерние объекты, которые не могли быть загружены? Если SearchRule.toString пытался получить значение для неинициализированного дочернего объекта, который мог бы привести к LazyInitializationException.
Hibernate.initialize (список), вызов не инициализирует целевые объекты объекта, на которые ссылаются в наборе. Необходимо было бы выполнить итерации по отчетам и инициализировать каждый отдельный объект. Вызов для инициализации отчетов превращает набор прокси в конкретный набор прокси Отчета. Попробуйте код ниже:
for(Report r : reports)
Hibernate.initialize(r);
Тупой подход топора должен выключить ленивую загрузку путем добавления lazy="false"
к Вашим hbm классам. Это могло бы иметь смысл, если Вы будете всегда выполнять итерации по всему объекту каждый раз его полученного (заставьте инициализацию ступить ОБЕ).
Я просто прошел этот марафон LazyInitialization.
Базовая проблема состоит в том, что Вы пытаетесь получить доступ к тому, чтобы быть в спящем режиме - управляемый объект за пределами жизненного цикла Session
, т.е. в веб-представлении Spring MVC. В моем случае это было a List<>
@OneToMany
ассоциация, которые лениво загружаются по умолчанию.
Существует несколько разных подходов - Mark упомянул один, где Вы делаете "фиктивное" повторение по ленивым ассоциациям. Можно также вызвать нетерпеливую загрузку, любого с помощью конфигурации (всего класса) (в JPA, которым это было бы @Fetch(value = FetchType.EAGER)
) или более конкретно через HQL. Но это окажется более проблематичным, если Ваши ленивые ассоциации будут Lists
.
Самое чистое решение, которое я нашел, состояло в том, чтобы использовать Spring OpenEntityManagerInViewFilter
(существует OpenSessionInViewFilter
для В спящем режиме) - простой фильтр сервлета, к которому Вы заглядываете web.xml
(перед Вашими другими фильтрами сервлета), и Spring автоматически создаст ориентированное на многопотоковое исполнение, осведомленное о транзакции Session
НА ЗАПРОС HTTP. Не больше LazyInitializationException
!
Хорошо я - идиот. Моя проблема, я посмотрел на отслеживание стека, но действительно не считал его. Вот полные отслеживания стека (или один из них, 3 немного отличающихся версии обнаруживаются в моих журналах).
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:57)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:150)
at com.generic.orm.generated.SearchRule$$EnhancerByCGLIB$$de674d10.toString(<generated>)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuffer.append(StringBuffer.java:219)
at org.apache.commons.lang.builder.ToStringStyle.appendDetail(ToStringStyle.java:578)
at org.apache.commons.lang.builder.ToStringStyle.appendInternal(ToStringStyle.java:542)
at org.apache.commons.lang.builder.ToStringStyle.append(ToStringStyle.java:428)
at org.apache.commons.lang.builder.ToStringBuilder.append(ToStringBuilder.java:840)
at org.apache.commons.lang.builder.ReflectionToStringBuilder.appendFieldsIn(ReflectionToStringBuilder.java:606)
at org.apache.commons.lang.builder.ReflectionToStringBuilder.toString(ReflectionToStringBuilder.java:759)
at org.apache.commons.lang.builder.ReflectionToStringBuilder.toString(ReflectionToStringBuilder.java:287)
at org.apache.commons.lang.builder.ReflectionToStringBuilder.toString(ReflectionToStringBuilder.java:121)
at com.generic.orm.generated.Report.toString(Report.java:141)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:115)
at java.util.AbstractCollection.toString(AbstractCollection.java:422)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:115)
at java.util.AbstractMap.toString(AbstractMap.java:490)
at org.netbeans.modules.web.monitor.server.MonitorFilter.recordRequestAttributes(MonitorFilter.java:1376)
at org.netbeans.modules.web.monitor.server.MonitorFilter.recordRequestData(MonitorFilter.java:1184)
at org.netbeans.modules.web.monitor.server.MonitorFilter.getDataBefore(MonitorFilter.java:803)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:361)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:167)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:239)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1158)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:808)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:431)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Netbeans, по-видимому, делает некоторый серверный контроль, который называет toString, который волнуется, потому что что-то позвонившее toString не инициализируется правильно. Таким образом, моя проблема два, сворачиваются, отражение базировалось, ToString кажется, что плохая идея для в спящем режиме, pojos и Netbeans изменяют мое поведение во время выполнения путем попытки наблюдать его.
Благодарен за то, что все помогают, я думаю, что просто смотрел на эту проблему слишком тесно слишком долго и должен был отступить для немного.