mybatis 18
- MyBatis 설정 한 줄이 쿼리 전체 동작을 바꾼다
- 한 부모에 여러 자식: collection 매핑의 그룹핑
- MyBatis: WHERE 1=1 대신 trim으로 해결하기
- #{} 와 ${}: 바인딩과 인젝션의 분기점
- insert 후 생성된 PK를 돌려받는 법
- TypeHandler: enum과 컬럼 사이의 번역가
- MyBatis 1차·2차 캐시를 정확히 이해하기
- 체크박스 여러 개로 거르는 필터를 쿼리로 옮기기
- IN 절에 리스트를 넘길 때 생기는 일
- 이 사용자가 흔적을 남겼나 — 존재 여부 컬럼을 만드는 법
- association/collection과 N+1 쿼리의 함정
- resultType vs resultMap, 무엇을 언제
- foreach 배치 insert: 1건씩 vs 한 방에
- 부분 수정: 변경된 필드만 UPDATE 하기
- resultMap: 컬럼과 객체를 잇는 다리
- 어드민 대시보드 숫자는 어디서 계산되나 — 기능별 집계 카운트
- 동적 검색조건을 안전하게 조립하는 법
- 검색과 페이징을 한 번에: 쿼리를 두 번 던지는 비용