public class Likes { // N
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@JoinColumn(name="imageId")
@ManyToOne
private Image image; //1
@JsonIgnoreProperties({"images"})
@JoinColumn(name="userId")
@ManyToOne
private User user;
private LocalDateTime createDate;
@PrePersist // DB에 INSERT 되기 직전에 실행
public void createDate(){
this.createDate = LocalDateTime.now();
}
}
user의 "images"를 JsonIgnoreProperties 처리 해줘야 한다.
이렇게 해야 무한참조를 방지한다. 그동안 잘 됐던 이유는
ssar과 코스 각각 좋아요를 한 상태라면
likes를 select 하는 과정에서 cos가 한번 더 ssar의 게시글에 좋아요를 누른다면 한번 더 탐색되기 때문에(다른 아이디 정보, 그러니까 ssar정보만 아니고 cos정보) 읽었고
User의 images 엔 이그노어가 안걸려있어서 에러가 발생했던 것
지금은 각각 좋아요 한 상태이기때문에 like값이 읽히면서 무한참조가 일어난다.
'Spring > JPA + Security' 카테고리의 다른 글
[Spring Data JPA] 좋아요 구현하기 -6 프로필 페이지 좋아요 카운트 구현 (0) | 2023.01.14 |
---|---|
[Spring Data JPA] 좋아요 구현하기 -5 좋아요 높은 순서의 인기 페이지 구현하기 (0) | 2023.01.13 |
[Spring Data JPA]좋아요 구현하기 -4 Ajax 연결 후 마무리하기 (0) | 2023.01.13 |
[Spring Data JPA] 좋아요 구현하기 -3 좋아요 뷰 렌더링, 카운트 렌더링 (0) | 2023.01.13 |
[Spring Data JPA] 좋아요 구현하기 - 2 좋아요 api 구현 (0) | 2023.01.12 |
댓글