IT'S DO
728x90
@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

 

profile

IT'S DO

@멋진놈

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!