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

second level cache

results matching ""

    No results matching ""