-
[SPRING] JdbcSQLIntegrityConstraintViolationException , DataIntegrityViolationException에러 일기 2022. 12. 20. 22:28
테이블에서 User(회원), Board(게시글), Comment(댓글) 간의 연관관계에서 낫던 에러이다.
Board 테이블은 Comment 테이블과 연관되어 있는 상태이며, Board -> @OneToMany / Comment -> @ManyToOne 이다.
Board에 연결된 Comment List에 저장된 객체가 있을 경우에 Board를 삭제하면 JdbcSQLIntegrityConstraintViolationException 에러가 나온다. 아마도 연결되어있는 Comment 객체가 남게 되기 때문에 위험신호를 주는 것 같다.
반대로 Comment는 삭제해도 되지 않을까 싶었지만 이것도 DataIntegrityViolationException 에러를 반환한다.
해결방법
기존에 Board 쪽에 @OneToMany 이것만 덩그러니 적어놨었는데, 이 안에 속성 중 cascade라는 것이 '연결된 데이터는 어떡할래?'를 설정해주는 속성인 것 같다. 아래와 같이 추가해주니 해결되었다.
@OneToMany(mappedBy = "board", cascade = CascadeType.ALL, orphanRemoval = true) private List<Comment> commentList;
'에러 일기' 카테고리의 다른 글