我有两个人在一边建立多对多的关系
Category.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>();
加上getter和setter ..
当我在浏览器中加载时,我得到例外:
failed to lazily initialize a collection of role ... JsonMappingException
有没有人可以帮我解决这个问题?
我应该编写自己的序列化程序吗?
谢谢和问候!答案 0 :(得分:0)
由于您在Hibernate Session对象之外访问您的Object,所以:
@JsonIgnore
注释@ManyToMany
或
@ManyToMany(fetch = FetchType.EAGER)
- 来自DB 您也可以尝试使用@LazyCollection(LazyCollectionOption.FALSE)
代替early fetch
答案 1 :(得分:0)
一个非常简单的解决方案是在服务层方法之上使用 @Transactional
注释,这会使会话保持打开状态直到执行结束。