본문 바로가기

database2

[Mybatis] 일대다 테이블 조회시 페이징과 N+1 Select 문제 해결 과정 사실이 아니라 공부한 내용과 생각을 정리한 글입니다. 언제든 가르침을 주신다면 감사하겠습니다. 예시를 위한 도메인은 간단한 결재 시스템입니다. 아래와 같은 1:N 관계의 테이블이 있다고 가정합니다. 예를 들어, 신청자가 휴가 신청을 올릴 때 팀장, 본부장, 사장 순으로 결재권자를 지정할 수 있습니다. 그렇게 지정 후 신청 버튼을 클릭하면 신청 table에 row 한건이 추가되고 승인자 table에는 그 신청건에서 지정한 승인자 3명의 정보가 추가됩니다. apply_id는 하나의 신청 건에 대한 unique key이고 approver_id는 하나의 승인 정보에 대한 unique key이며, 신청 테이블: 승인 테이블 = 1:N 관계이고 외래 키는 apply_id입니다. 객체로 모델링하면 아래와 같습니다. .. 2022. 3. 22.
@Transactional 정리가 필요해 사실이 아니라 공부한 내용과 생각을 정리한 글입니다. 언제든 가르침을 주신다면 감사하겠습니다. Spring에서 DB 접근 기술은 많이 추상화되어 있다. 가장 기본적으로 JDBC가 있고 이를 조금 더 편하게 사용하기 위한 Mybatis, JPA 등이 있다. 트랜잭션은 이러한 JDBC, Mybatis, JPA에서 본래 가지고 있던 부분은 아니다. 데이터베이스 자체에서 출발한 부분이다. 그래서 그런지, 개발을 하면서 데이터베이스 수준, JDBC 수준, Mybatis 수준, JPA 수준에서 트랜잭션이 어떠한 의미를 갖는지 혼란이 온다. 따라서 이 글을 시작으로 앞으로 관련 내용을 학습할 때마다 정리하려고 한다. --------------------------------------------------------.. 2021. 12. 17.