2012. 4. 19. 09:09ㆍ공부/MYBATIS
이것들은 마이바티스가 작동되는 방식을 수정하는 매우 중요한 내용이야. 다음 테이블은 각각의 세팅과 그 의미 그리고 기본값들을 설명한거야.
세팅 | 설명 | 가능값 | 기본값 |
---|---|---|---|
cacheEnabled | 이 설정으로 모든 매퍼의 모든 캐시를 전역으로 사용할지 말지를 결정 | true | false | true |
lazyLoadingEnabled | 늦은 로딩을 전역으로 가능하게 할지 말지를 설정. disable이면 연관된 모든 것들은 빠른 로딩이 됨 | true | false | true |
aggressiveLazyLoading | enable일 경우, 늦은 로딩 프라퍼티 객체는 모든 늦은 로딩 프라퍼티의 호출에 의해 로드될 것이다. 반면, 각 프라퍼티는 필요에 의해 로딩. | true | false | true |
multipleResultSetsEnabled | 하나의 구문으로부터 여러개의 resultset이 리턴될지를 허락할지 말지를 결정(적절한 드라이버가 필요함). | true | false | true |
useColumnLabel | 컬럼네임 대신에 컬럼라벨을 사용. 이부분에서는 드라이버마다 다르게 작동함. 드라이버 문서서나 테스트를 통해 사용하는 드라이버에서 두가지 모드가 어떻게 작동하는지 확인해야함 | true | false | true |
useGeneratedKeys | JDBC가 생성키를 지원하도록 허용. 이 기능을 지원하는 드라이버가 필요. true로 설정하면 생성키가 사용되도록 강제함. 일부드라이버에서는 이 기능의 지원을 무시하지만 여전히 작동함(예를들면 Derby) | true | false | False |
autoMappingBehavior | 마이바티스가 자동으로 컬럼을 필드/프라퍼티에 매핑할 것인지, 그리고 어떻게 매핑할 것인지 기술. NONE는 자동매핑을 불가능하게 함. PARTIAL은 안에 정의된 중첩되지 않은 result에 대한 매핑만 함. FULL은 모든 자동매핑을 함 (중첩이나 다른 어떤것을 포함해서) | NONE, PARTIAL, FULL | PARTIAL |
defaultExecutorType | 기본 executor를 설정. SIMPLE executor은 특별한게 없음. REUSE executor는 prepared statement를 재사용. BATCH executor는 statement를 재사용하고, updates를 배치처리 | SIMPLE REUSE BATCH | SIMPLE |
defaultStatementTimeout | 데이터베이스로부터 결과를 얼마나 기다릴지 세팅 | Any positive integer | Not Set (null) |
safeRowBoundsEnabled | 중첩된 statement에 RowBounds를 사용할지 결정 | true | false | False |
mapUnderscoreToCamelCase | 전통적인 데이터베이스 컬럼네임인 A_COLUMN 을 전통적인 자바 프라퍼티명인 aColumn 형태로 자동 매핑을 가능하게 할지 설정 | true | false | False |
localCacheScope | 마이바티스가 로컬 캐시를 순환참조를 막고, 반복되는 중첩쿼리의 속도를 향상시키기 위해 사용. 기본값(SESSION)에 의해 세션동안 실행된 모든 쿼리는 캐시됨. 만약 localCacheScope=STATEMENT일 경우, 지역세션은 구문 실행에만 사용되고, 어떤 데이터도 같은 SqlSession의 다른 호출에 의해 공유되지 않음 | SESSION | STATEMENT | SESSION |
jdbcTypeForNull | 파라미터로 JDBC타입이 기술되지 않았을 때 JDBC타입을 null로 할지 기술. 일부 드라이버는 컬럼 JDBC 타입을 기술해야 하지만, 일부 드라이버는 NULL, VARCHAR 혹은 OTHER같은 일반적인 값으로도 동작 | JdbcType enumeration. Most common are: NULL, VARCHAR and OTHER | OTHER |
lazyLoadTriggerMethods | 어떤 오브젝트 메소드 트리거가를 늦은 로딩으로 처리할지 기술 | A method name list separated by commas | equals,clone,hashCode,toString |
<settings> <setting name="cacheEnabled" value="true"/> <setting name="lazyLoadingEnabled" value="true"/> <setting name="multipleResultSetsEnabled" value="true"/> <setting name="useColumnLabel" value="true"/> <setting name="useGeneratedKeys" value="false"/> <setting name="enhancementEnabled" value="false"/> <setting name="defaultExecutorType" value="SIMPLE"/> <setting name="defaultStatementTimeout" value="25000"/> <setting name="safeRowBoundsEnabled" value="false"/> <setting name="mapUnderscoreToCamelCase" value="false"/> <setting name="localCacheScope" value="SESSION"/> <setting name="jdbcTypeForNull" value="OTHER"/> <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/> </settings>