我在餐厅和标签之间得到了很多关系。这里是我的课: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属性。 –