0

一方面,我有两个实体建立多对多关系

类别.java:

@ManyToMany()
@JoinTable(
    name = "categories_articles",
    joinColumns = @JoinColumn(name = "categoryID", referencedColumnName = "id"),
    inverseJoinColumns = @JoinColumn(name = "articleID", referencedColumnName = "id"))
private List<Article> articles = new ArrayList<Article>();

在另一边Article.java:

@ManyToMany(mappedBy = "articles")
private List<Category> categories = new ArrayList<Category>();

加上吸气剂和二传手..

当我在浏览器中加载时出现异常:

failed to lazily initialize a collection of role ... JsonMappingException

有没有人可以帮助我解决这个问题?

我应该编写自己的序列化程序吗?

谢谢和问候!

4

2 回答 2

0

由于您在 Hibernate Session 对象之外访问您的对象,因此:

  • @JsonIgnore@ManyToMany注释下添加

或者

  • add @ManyToMany(fetch = FetchType.EAGER)- 从数据库中加载项目

您也可以尝试@LazyCollection(LazyCollectionOption.FALSE)代替early fetch

于 2017-03-20T19:39:20.850 回答
0

@Transactional一个非常简单的解决方案是在您的服务层方法之上使用注释,这会使会话保持打开状态直到执行结束。

于 2017-03-21T05:14:34.237 回答