반응형
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- RabbitMQ
- redis
- spring boot
- KAFKA
- MySQL
- mybatis
- ChannelPipeline
- Airflow
- Hibernate
- docker compose mysql
- docker
- coalesce
- Spring Open Feign
- cassandra
- Selenium
- QueryDSL
- spring cloud
- WebLogic
- argo cd
- Docker Compose
- grafana
- Redis Sentinel
- spring boot redis
- JPA
- docker-compose
- vue.js
- jmeter
- netflix oss
- Netty
- weblogic 10
Archives
- Today
- Total
IT.FARMER
Jpa JSON 순환참조 @ResponseBody 본문
반응형
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 |