User有一个属性是Set<Address>addressSet,映射到Address表,HibernateTemplate().get(User.class,1L)的时候出现
 LazyInitializationException:42 - failed to lazily initialize a collection of role: caveatEmptor.user.User.addressMap, no session or session was closed随后查看资料,可能是事务的原因,遂在appcontext.xml里配置事务如下
         <bean id="tranManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="tranSource"
class="org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="properties">
<props>
<prop key="save">PROPAGATION_REQUIRED</prop>
<prop key="update">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<bean id="tranInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="transactionManager">
<ref bean="tranManager" />
</property>
<property name="transactionAttributeSource">
<ref bean="tranSource" />
</property>
</bean>
         <bean id="tranAutoProxy"
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="beanNames">
<list>
<value>*DAO</value> <!--就是get操作所在的任何DAO-->
</list>
</property>
<property name="interceptorNames">
<value>tranInterceptor</value>
</property>
</bean>////////////////////////////////////////////////////////////////////////////////////////////////////
run之,依然出错如故,求解!!