관리 메뉴

한글창제의 기쁨

ORM Jpa @ResponseBody 재귀 memory error 본문

Spring/Spring Data JPA

ORM Jpa @ResponseBody 재귀 memory error

timesurfer 공간지배자 2017.09.21 16:43

ORM을 이용하다보면 @ResponseBody 에서 자동으로 마샬링 언마샬링시에 무한 재귀에 빠지게 된다.

이때 부모자식과 같은 관계를 갖는 객체는 원하는 형태에 따라 다음과 같은 @Annotation을 붙여 주어야 한다.  


@JsonBackReference 는 순환참조의 역할을 끝어주게 되며,  해당 객체가 마샬릴될때  대상에서 제외 된다. 

즉 양방향의 JSON 마샬링을 할 수 없는 단점 존재한다. 양방양이 가능한 @JsonIdentityInfo(http://springquay.blogspot.kr/2016/01/new-approach-to-solve-json-recursive.html) 있지만 같은 객체에대한 마샬링은 해주지 않고 참조만 하고 있어, 언마샬링구조엔 맞지 않고 다시 호출해주어야 한다. 


* 부모 객체

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "email", referencedColumnName = "email", insertable = false, updatable = false)
@JsonBackReference
private Users users;

* 자식 객체

@OneToMany(mappedBy = "users" , fetch = FetchType.LAZY)
@JsonManagedReference
private List<Just> justs;

http://madpro84.blogspot.kr/2017/01/jpa-onetomanymappedby.html


저작자 표시
신고
0 Comments
댓글쓰기 폼