Hi!
I have a object(Nomination) in session. When I try to access from the view I'm getting an exception :
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
if the Nomination object was passed as request attribute there is no problem. I dont wont to do that bcos i want to show Nomination details in all my jsp pages like a header
what I want to do is put the Nomination in session and access it from all of my jsp pages.
Nomination.hbm.xml
data-access-configCode:<hibernate-mapping package="org.sya.domain"> <class name="Nomination" table="nominations"> <id name="nominationId" column="nomination_id" type="integer"> <generator class="increment" /> </id> <many-to-one name="nominee" class="Person" column="person_id"/> <many-to-one name="nomineeType" class="NomineeType" column="nominee_type_id" /> <many-to-one name="category" class="Category" column="category_id" /> <property name="registeredDate" column="registered_date" type="timestamp"/> </class>
Code:<bean id="hibernateTransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"> <property name="transactionManager" ref="hibernateTransactionManager" /> <property name="transactionAttributes"> <props> <prop key="insert*">PROPAGATION_REQUIRED</prop> <prop key="update*">PROPAGATION_REQUIRED</prop> <prop key="delete*">PROPAGATION_REQUIRED</prop> <prop key="*">PROPAGATION_SUPPORTS,readOnly</prop> </props> </property> </bean>view.jspCode:<bean id="openSessionInViewInterceptor" class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor"> <property name="sessionFactory" ref="sessionFactory" /> <property name="singleSession" value="true" /> <property name="flushModeName" value="FLUSH_NEVER" /> </bean> <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="alwaysUseFullPath" value="true" /> <property name="interceptors"> <list> <ref bean="openSessionInViewInterceptor" /> </list> </property> <property name="mappings"> <props> <prop key="/public/index">indexController</prop> <prop key="/public/login">loginController</prop> <prop key="/public/home">userRedirectController</prop> <prop key="/nominee/register">nomineeRegistrationController</prop> <prop key="/nominee/registernomination">nominationRegistrationController</prop> <prop key="/nominee/switchnomination">switchNominationController</prop> <prop key="/nominee/home">nomineeHomeController</prop> </props> </property> </bean>
does any one know the reason for it to behave like this. is there any solution (without lazy="false" in my Nomination.hbm) ?Code:<c:set var="nomination" value="${sessionScope.NOMINATION}"/> <c:if test="${nomination ne null}"> <c:set var="nomineeType" value="${nomination.nomineeType}"/> <c:set var="category" value="${nomination.category}"/> Category : ${category.categoryName} </c:if>
thanks in advance![]()


Reply With Quote