2017-03-20 3 views
0

다음 othder 측면 Article.java에봄 - 최대 절전 모드 잭슨 매핑 내가</p> <p>Category.java 한쪽에, 다 대다 관계를 구축하는 두 entites이

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

을 :

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

플러스 getter 및 setter .. 내가 브라우저에로드 할 때

내가 예외를 얻을 :

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

이 문제와 관련하여 도움이 될만한 사람이 있습니까?

내 시리얼 계산기를 쓸까요?

감사 인사와 인사!

답변

0

그렇게, 최대 절전 모드 세션 개체 이외의 개체에 액세스하는 버젼 :

또는

  • @ManyToMany(fetch = FetchType.EAGER)를 추가 @JsonIgnore 주석 @ManyToMany에서

    • 추가 -이 부하 항목을 DB에서

    또한 @LazyCollection(LazyCollectionOption.FALSE) 대신

+0

FetchType.EAGER 아무것도 도움이되지 않았고 jsonignore는 추가 데이터가로드되지 않도록했습니다 ...이 엔티티와 관련된 데이터를 차일드로로드하려고합니다. –

+0

'categories'에만'fetch'를 추가하십시오. –

+0

예 순환 로딩을 막기 위해 한쪽면과 @JsonIgnore를 반대쪽에 추가했습니다 ...하지만 이제는 기사를 호출 할 때 연관된 범주를 얻지 못합니다 ... 정말 어렵습니다? –

0

early fetch의 아주 간단한 해결 방법은 실행이 끝날 때까지 세션을 열어 계속 서비스 계층의 메소드의 상단에 @Transactional 주석을 사용하는 것입니다 시도 할 수 있습니다.