@OneToMany(mappedBy="post",
cascade = {CascadeType.PERSIST, CascadeType.MERGE},
fetch=FetchType.EAGER
)
public List<Tag> getTags() {
return tags;
}在上述代码运行就会引起最终错误:cannot simultaneously fetch multiple bags
fetch=FetchType.EAGER在查找的错误原因中有可能是我运用了List。
为何我用List而不用Set呢,因为我其中需要对tags进行操作,list操作起来比较方便
所以在查找的解决方法,我把我的代码修改成如下:
@LazyCollection(LazyCollectionOption.FALSE)
@OneToMany(mappedBy="post",
cascade = {CascadeType.PERSIST, CascadeType.MERGE}
)
public List<Tag> getTags() {
return tags;
}
本文探讨了一种常见的Hibernate多对多关系映射问题——使用Eager加载方式时引发的“cannotsimultaneouslyfetchmultiplebags”错误,并提供了一种有效的解决方案,即通过调整 FetchType 为 Lazy 并结合 @LazyCollection 注解来避免并发加载冲突。
247

被折叠的 条评论
为什么被折叠?



