在我的ORM里面有Cart映射对象,里面有一个元素为:
private Set merchandises = new HashSet(); 一个多对多对象
<set name="merchandises"
table="Cartselectedmer"
lazy="true"
cascade="save-update">
<key column="Cart"/>
<many-to-many class="com.ORM.Merchandise" column="Merchandise"/>
</set>
从数据库里面获得Cart后,我利用:
<c:forEach var="merchandise" items="${order.cart.merchandises}" >
<tr class="text" align="center" bgcolor="#FFFFFF">
<td>{merchandise.merName}</td>
</tr>
</c:forEach>
报错:org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.ORM.Cart.merchandises - no session or session was closed
请问是什么原因????????
另外,我要是想获得Cartselectedmer中的值应该怎样操作。
------解决方案--------------------
order.cart.merchandises 这些对象都分别代表什么呢?
order?cart?merchandises?你做的是不是购物车啊?
------解决方案--------------------
你用了延迟加载,是不是你读完数据,数据库的session就关了吧。所以报错