我在餐廳和標籤之間得到了很多關係。這裏是我的課:Spring MVC加載多對多關係
public class Restaurant {
@Id
@GeneratedValue
private int id;
(...)
@ManyToMany
@JoinTable(name="restaurant_tag",
joinColumns={@JoinColumn(name="restaurant_id")},
inverseJoinColumns={@JoinColumn(name="tag_id")})
private List<Tag> tags;
和:
public class Tag {
@Id
private int id;
private String name;
@ManyToMany
@JoinTable(name="restaurant_tag",
joinColumns={@JoinColumn(name="tag_id")},
inverseJoinColumns={@JoinColumn(name="restaurant_id")})
private List<Restaurant> restaurants;
我要顯示所有與我的餐廳相連的標籤。這裏是控制器:
modelMap.addAttribute("tagList", restaurant.getTags());
在我的jsp:
<c:forEach items="${tagList }" var="var"><c:out value="${var }" ></c:out></c:forEach>
當我去餐廳網頁,我得到錯誤:
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: beans.Restaurant.tags, no session or session was closed
我已經在另一個問題中告訴過你,但你可能沒有注意到:你的映射是錯誤的。相同的雙向關聯被映射兩次。其中一方應該使用mappedBy屬性。 –