Department (부서)
PERSIST, REMOVE, ALLEmployee (사원)
changeDepartment() 메서드로 양방향 관계 동기화EmployeeRepository 와 DepartmentRepository 는 JpaRepository 상속으로 기본 CRUD 제공SELECT 절, WHERE 절, FROM 절 등 다양한 위치에서 사용
단일행 vs 다중행 서브쿼리:
=, <>, <, > 등IN, ANY, ALLSELECT *
FROM POSTS
WHERE USER_ID = (
SELECT USER_ID FROM USERS WHERE USERNAME = 'ryan'
);
SELECT *
FROM POSTS
WHERE VIEW_COUNT > (
SELECT AVG(VIEW_COUNT) FROM POSTS
);
SELECT P.*, U.USERNAME
FROM POSTS P
LEFT JOIN USERS U ON P.USER_ID = U.USER_ID
WHERE POST_ID IN (
SELECT POST_ID
FROM POST_TAGS
WHERE TAG_ID = (
SELECT TAG_ID FROM HASHTAGS WHERE TAG_NAME = '#포켓모드'
)
);
SELECT USERNAME
FROM LIKES L
JOIN USERS U ON L.USER_ID = U.USER_ID
WHERE POST_ID IN (
SELECT POST_ID
FROM POSTS
WHERE USER_ID = (
SELECT USER_ID FROM USERS WHERE USERNAME = 'pikachu'
)
);
@Transactional, @Rollback(false) 설정을 통해 DB 반영 확인