MyBatis Cache
크게 2종류의 캐시를 제공한다.
local cache
별도의 설정을 하지 않아도 항상 켜져있는 캐시.
적용 범위만 조정가능하며 config 파일에서 적용 범위 조정이 가능하다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "HTTP://mybatis.org/...">
<configuration>
<settings>
<setting name="localCacheScope" value="STATEMENT" /> <!-- STATEMENT / SESSION -->
</settings>
</configuration>
속성은 STATEMENT 또는 SESSION 으로 선택이 가능하며 Default는 SESSION 이다.
- SESSION
- 디폴트
- 캐시의 생존 범위는 세션이 유지되는 순간까지이다. 즉 트랜잭션이 끝나거나(commit이나 rollback) 아니면 insert, update, delete가 실행되면 cache 정보는 폐기된다.
- 오토커밋을 실행시켜 놓으면 쿼리를 실행할때마다 커밋을 하기때문에 세션에서 캐시가 유지되는지 확인하기 힘들다.
- STATEMENT
- mapper에 정의된 액션 하나당 하나의 statement