我有名为Article的模型和名为Shop的模型,关系是ManyToMany
第
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(
name="shop_article",
joinColumns=@JoinColumn(name="article_id"),
inverseJoinColumns=@JoinColumn(name="shop_id")
)
private Set<Shop> shops = new HashSet<Shop>();
商店:
@ManyToMany(mappedBy="shops", fetch=FetchType.LAZY)
private Set<Article> articles = new HashSet<Article>();
我的商店与OneToOne和Page
有关系商店:
@OneToOne( fetch=FetchType.LAZY)
@Cascade({CascadeType.DELETE, CascadeType.DELETE_ORPHAN})
@JoinColumn(name = "page_id")
private Page page;
除了一个细节外,它的效果很好 当我尝试添加新文章时,在我的视图中我使用
<form:select path="shops" multiple="true"
items="${shops}" itemLabel="name" itemValue="id" />
我的商店对象获取所有页面关系。但是当我在控制器中的sysout商店或删除表单时:从视图中选择,页面没有提取,是正确的。
问题出在哪里? 我的代码的哪一部分要粘贴帮助?
答案 0 :(得分:0)
听起来像是一个懒惰的加载问题。我真的不了解你的模型,但是你真的想要一个没有引用页面的商店吗?可能不对,对吧?因此,将fetch
更改为EAGER
,如果您正在使用休眠,请添加@Fetch(FetchMode.SELECT)
。