반응형
ORM Jpa @ResponseBody 재귀 memory error
ORM을 이용하다보면 @ResponseBody 에서 자동으로 마샬링 언마샬링시에 무한 재귀에 빠지게 된다.
이때 부모자식과 같은 관계를 갖는 객체는 원하는 형태에 따라 다음과 같은 @Annotation을 붙여 주어야 한다.
@JsonBackReference 는 순환참조의 역할을 끝어주게 되며, 해당 객체가 마샬릴될때 대상에서 제외 된다.
즉 양방향의 JSON 마샬링을 할 수 없는 단점 존재한다. 양방양이 가능한 @JsonIdentityInfo(http://springquay.blogspot.kr/2016/01/new-approach-to-solve-json-recursive.html) 있지만 같은 객체에대한 마샬링은 해주지 않고 참조만 하고 있어, 언마샬링구조엔 맞지 않고 다시 호출해주어야 한다.
Parent Class
@OneToMany(mappedBy = "users" , fetch = FetchType.LAZY)
@JsonManagedReference
private List<Just> justs;
Child Class
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "email", referencedColumnName = "email", insertable = false, updatable = false)
@JsonBackReference
private Users users;
반응형
'Spring > Spring Data JPA' 카테고리의 다른 글
JPA Hibernate Multi PK 주의점 (정적 내부 클레스) (0) | 2018.10.08 |
---|---|
@OneToOne 양방향 매핑 주키(PK)공유 (0) | 2017.09.27 |
JPA foreign key 생성(@MapsId @ManyToOne) (0) | 2016.11.29 |
Spring JPA QueryMethod(findBy...deleteBy) (0) | 2016.10.27 |
Spring JPA Hibernate Embeddable(PK composite) (0) | 2015.11.30 |