DB/JPA

[JPA] Infinite recursion 에러 발생

user-anonymous 2020. 10. 12. 13:23
728x90

이번 JPA 개발을 하는 도중
nested exception is com.fasterxml.jackson.databind.JsonMappingException: Infinite recursion
에러가 발생하였다. 찾아본 결과

내가 JPA를 위해 클래스 끼리 서로 관계를 맺을려고

testA클래스 (부모)
testB클래스 (자식)

testA클래스
@OneToOne(targetEntity = TestB.class)
@JoinColumn("hm_name")
TestB testB;

testB클래스
@JoinColumn("hm_email")
@OneToOne(targetEntity = TestA.class)
TestA testA;

으로 사용하면 서로 양방향 참조를 한다.
이렇게 된다면 이것들을 매핑하는 과정 속에서 무한적으로 이뤄지는 순한참조가 일어나기 때문에
생기는 에러다

서칭해본결과

@JsonManagedRefrence : 부모
@JsonBackReference : 자식
어노테이션을 해당 관계를 설정해놓은 엔티티 위에다가 적으면된다 그러므로

testA클래스
@JsonManagedRefrence
@OneToOne(targetEntity = TestB.class)
@JoinColumn("hm_name")
TestB testB;

testB클래스
@JsonBackReference
@JoinColumn("hm_email")
@OneToOne(targetEntity = TestA.class)
TestA testA;

를 붙이니 에러가 해결되었다.

728x90
반응형

'DB > JPA' 카테고리의 다른 글

[ JPA ] 엔티티 toString 무한 호출  (0) 2021.07.18
JPA DDL  (0) 2021.02.17
JPA 관계 (@OneToOne, @OneToMany, @ManyToOne)  (0) 2020.10.12
JPA limit  (0) 2020.10.07
JPA - @Transient  (0) 2020.09.26