2024/04/13 2

[JPA] [Trouble Shooting] 에러 Cannot delete or update a parent row: a foreign key constraint fails 참조 무결성 제약 조건 ON DELETE CASCADE

글 작성을 한 후, 댓글이 달려있는 상태에서 글 삭제 테스트를 하던 중 이런 에러를 보았다. 더보기 Cannot delete or update a parent row: a foreign key constraint fails (`learningmate`.`tb_reply`, CONSTRAINT `FKsxgehpxyljiiatkcutvuahw13` FOREIGN KEY (`board_no`) REFERENCES `tb_board` (`board_no`)) 일단 에러가 발생한 이유는 ✓ 데이터 삭제 시 해당 테이블에 연관관계가 설정 되어 있기 때문에 부모를 삭제 할 경우 부모 엔티티를 참조하는 자식 엔티티가 불안정한 상태가 되어 사전에 방지해주기 위해 에러가 발생하는 것이다. Trouble Shooting! ..

JPA 2024.04.13

Spring Data JPA를 활용한 Update 처리(변경감지, 더티체킹)

최근 Spring Data JPA를 사용하며 SSR 방식으로 개발중이다. 게시글 정보를 수정하는 Update 로직을 처리 하려고 한다 JPA에서 Update 처리 로직을 보기 전에 변경감지(더티체킹)이 뭔지 알아보자 더티체킹이란? Transaction안에서 엔티티의 변경이 일어나면 변경내용을 자동으로 데이터베이스에 반영하는 JPA 특징이다. 게시글을 관리하는 BoardService의 updateBoard 메서드이다. 우리가 생각하는 JPA를 활용한 쿼리 처리는 JPARepository를 상속받고 있는 boardReporitory 인터페이스에서 JPA에서 제공해주는 기본 메서드인 findAll(), deleteById() 등 이런 메서드를 사용하여 update도 똑같이 처리를 할거라고 생각하겠지만, 소스를..

Spring-Boot 2024.04.13