@JsonIgnoreProperties({"board"})
@OneToMany(mappedBy = "board", fetch = FetchType.EAGER, cascade = CascadeType.REMOVE)
private List<Reply> replyList;
board를 통해서 호출했을 때 replayList의 board 객체 재참조를 안한다는 뜻.
reply.java안에 내용은 이게 들어가 있음.
@ManyToOne
@JoinColumn(name = "boardId")
private Board board;
Board Model
@OneToMany(mappedBy = "board", fetch = FetchType.EAGER)
@JsonIgnoreProperties({"board"})
private List replys;
Reply Model
@ManyToOne
@JoinColumn(name="boardId")
private Board board;
위와 같이 Reply model객체와 Board model객체가 서로 참조하고 있는데,
Board Model을 가져올 때 Reply 객체 가져오고 Reply객체 가져올 때 또 Board 참조하고....
끝없는 연결로 객체를 엄청나게 많이 가져온다.
를 막기 위해 쓰는것
@OneToMany(mappedBy = "board", fetch = FetchType.EAGER)
@JsonIgnoreProperties({"board"})
private List replys;
위와 같이 Json Ignore하면 중복 참조하지 않는다.
즉 내가 Board를 통해서 호출했을때 replys의 board 객체 재참조를 안한다는 뜻이다.
예를 들어
@JsonIgnoreProperties({"board, user"})
라고 했을 때, Board를 통해 reply를 가져온다면 board와 user객체를 참조하지 않는다는 뜻이다.
https://velog.io/@ujone/JPA-Model-%EA%B0%9D%EC%B2%B4-%EB%AC%B4%ED%95%9C-%EC%B0%B8%EC%A1%B0
[JPA] Model 객체 무한 참조
@OneToMany(mappedBy = "board", fetch = FetchType.EAGER) @JsonIgnoreProperties({"board"})private List replys;@ManyToOne@JoinColumn(name="boardId")priv
velog.io
Board(게시판)에 reply OneToMany 설정
@OneToMany(mappedBy = "board", fetch = FetchType.EAGER)
private List<Reply> reply;
Reply(답글)에 board ManyToOne 설정
@ManyToOne
@JoinColumn(name="boardId")
private Board board;
1. mappedBy
1) 연관관계의 주인이 아님. (FK는 다른 Entity 있음)
2) DB에 컬럼 생성 안함.
3) Board를 가져올때, Reply를 가져오기 위해 생성.
4) board는 Reply에서 Board연결한 FK값.
2. fetch
1) FetchType.EAGER : Board를 select 할 때 바로 가져온다. (한페이지에 바로 모든 데이터 보여줄때)
2) FetchType.Lazy : 필요할때(호출할때) 가져온다. (예로 리플 접기, 펼치기 기능 있을때)
https://congsong.tistory.com/51
스프링 부트(Spring Boot) JPA 게시판 - CRUD 구현하기 (With. MySQL)
웹 사이트 개발에서 데이터베이스는 떼어놓을 수 없는 핵심적인 요소로 자리 잡고 있습니다. 그만큼 웹 개발자들은 DB와 관련된 로직을 작성하는 데 어마어마한 시간을 쏟을 수밖에 없는데요.
congsong.tistory.com
'개발 > JPA' 카테고리의 다른 글
JunitTest assertThat 사용법과 유형이 string이 아닌 char일때 사용법 (0) | 2022.07.29 |
---|---|
domain. board entity 에서 보통 쓰는 @Builder 와 setter (0) | 2022.07.29 |
JPA 중요한 @JoinColumn의 의미 (0) | 2022.07.29 |
DTO (0) | 2022.07.28 |
jpa domain entity repository (0) | 2022.07.27 |