JPA 3

@Transactional 그리고 @Commit

Spring Boot에서 테스트 코드를 작성하면서 이건 기억하면 좋겠다 싶은 내용이 있어 달려왔습니다 우선 진행하려던 코드는 첨부파일 업데이트 관련 테스트 코드입니다 @Transactional @Commit @Test public void testUpdateImage(){ Board board = repository.getById(20); board.changeTitle("제목 수정.....20"); board.clearImages(); for (int i = 0; i < 3; i++) { BoardImage boardImage = BoardImage.builder() .fileLink("aaa"+i+"jpg") .build(); board.addImage(boardImage); } repository...

JPA One To Many 그리고 N+1

JPA를 하면서 연관관계에 대해 공부하던 중 접하게 된 One To Many 장점과 단점이 있었지만 솔직히 장점보다는 단점이 더 많은 방법처럼 느껴졌습니다. 우선 장점으로는 관리의 주체가 도메인 스러워지고 Pk위주의 설계인점 이 있었고 단점으로는 단방향 참조이기에 페이징 , N+1 등 다양한 문제점들이 있었습니다. 😉그럼 좀더 깊~~~ 숙하게 One To Many를 알아보겠습니다. 😒맵핑 테이블? 우선 One To Many 는 기본적으로 중간에 맵핑 테이블을 생성합니다 하지만 이런 방식이 불편하게 느껴지기에 저는 강제적으로 맵핑 테이블이 생성되지 못하도록 처리해서 코드를 작성했습니다. @Entity @Table(name = "t_board") @AllArgsConstructor @NoArgsConstru..

고민해 보기 2022.07.18

객체지향 DB를 어떻게 볼 것이냐 <JPA>

객체지향형 DB의 가장 어렵고 복잡하다고 생각된 부분인 N:1 오늘 그 부분에 대한 엄청난 팁을 얻었습니다 우선 어떤부분에서 어렵다고 생각되는지 그림으로 보겠습니다 이 그림을 보면 똑같은 게시물 댓글의 관계이지만 어떤 관점에서 보느냐에 따라 관계가 달라지는 걸 볼 수 있습니다 하나의 게시물은 여러 댓글을 가진다 Many To One 하나의 댓글은 하나의 게시글에 속한다 One To One 우선 두가지 모두 틀린 것은 아니지만 기존 DB를 설계해봤다면 의문이 생기는 것은 ERD를 만들어보면 당연하게 우리는 "하나의 게시물은 여러 댓글을 가진다 Many To One" 로 이해할 것이다 하지만 그런 것이 아니고 JPA로 바로 입문을 했다면 이 부분에서 많이 고민이 생길 것이다 관점에 따라 다르게 보이기 때문이..

DB 2022.05.23