PostIT

[MyBatis/Setting] Mybatis에서 필요한 부분들 setting자료 본문

Spring/MyBatis

[MyBatis/Setting] Mybatis에서 필요한 부분들 setting자료

shun10114 2017. 2. 1. 08:59

settings

런타임시 마이바티스의 행위를 조정하기 위한 중요한 값들이다. 다음표는 설정과 그 의미 그리고 디폴트 값을 설명한다.

설정설명사용가능한 값들디폴트
cacheEnabled설정에서 각 매퍼에 설정된 캐시를 전역적으로 사용할지 말지에 대한 여부true | falsetrue
lazyLoadingEnabled지연로딩을 사용할지에 대한 여부. 사용하지 않는다면 모두 즉시 로딩할 것이다. 이 값은 fetchType 속성을 사용해서 대체할 수 있다.true | falsefalse
aggressiveLazyLoadingWhen enabled, any method call will load all the lazy properties of the object. Otherwise, each property is loaded on demand (see also lazyLoadTriggerMethods).true | falsefalse (true in ≤3.4.1)
multipleResultSetsEnabled한개의 구문에서 여러개의 ResultSet을 허용할지의 여부(드라이버가 해당 기능을 지원해야 함)true | falsetrue
useColumnLabel칼럼명 대신에 칼럼라벨을 사용. 드라이버마다 조금 다르게 작동한다. 문서와 간단한 테스트를 통해 실제 기대하는 것처럼 작동하는지 확인해야 한다.true | falsetrue
useGeneratedKeys생성키에 대한 JDBC 지원을 허용. 지원하는 드라이버가 필요하다. true로 설정하면 생성키를 강제로 생성한다. 일부 드라이버(예를들면, Derby)에서는 이 설정을 무시한다.true | falseFalse
autoMappingBehavior마이바티스가 칼럼을 필드/프로퍼티에 자동으로 매핑할지와 방법에 대해 명시. PARTIAL은 간단한 자동매핑만 할뿐 내포된 결과에 대해서는 처리하지 않는다. FULL은 처리가능한 모든 자동매핑을 처리한다.NONE, PARTIAL, FULLPARTIAL
autoMappingUnknownColumnBehavior자동매핑 대상중 알수 없는 칼럼(이나 알수없는 프로퍼티 타입)을 발견했을때 행위를 명시
  • NONE: 아무것도 하지 않음
  • WARNING: 경고 로그를 출력('org.apache.ibatis.session.AutoMappingUnknownColumnBehavior'의 로그레벨은 WARN이어야 한다.)
  • FAILING: 매핑이 실패한다. (SqlSessionException예외를 던진다.)
NONE, WARNING, FAILINGNONE
defaultExecutorType디폴트 실행자(executor) 설정. SIMPLE 실행자는 특별히 하는 것이 없다. REUSE 실행자는 PreparedStatement를 재사용한다. BATCH 실행자는 구문을 재사용하고 수정을 배치처리한다.SIMPLE REUSE BATCHSIMPLE
defaultStatementTimeout데이터베이스로의 응답을 얼마나 오래 기다릴지를 판단하는 타임아웃을 설정양수설정되지 않음(null)
defaultFetchSize조회결과를 가져올때 가져올 데이터 크기를 제어하는 용도로 드라이버에 힌트를 설정 이 파라미터값은 쿼리 설정으로 변경할 수 있다.양수설정하지 않음(null)
defaultFetchSize결과를 가져오는 크기를 제어하는 힌트처럼 드라이버에 설정한다. 이 파라미터는 쿼리설정으로 변경할 수 있다.양수셋팅되지 않음(null)
safeRowBoundsEnabled중첩구문내 RowBound사용을 허용 허용한다면 false로 설정true | falseFalse
safeResultHandlerEnabled중첩구문내 ResultHandler사용을 허용 허용한다면 false로 설정true | falseTrue
mapUnderscoreToCamelCase전통적인 데이터베이스 칼럼명 형태인 A_COLUMN을 CamelCase형태의 자바 프로퍼티명 형태인 aColumn으로 자동으로 매핑하도록 함true | falseFalse
localCacheScope마이바티스는 순환참조를 막거나 반복된 쿼리의 속도를 높히기 위해 로컬캐시를 사용한다. 디폴트 설정인 SESSION을 사용해서 동일 세션의 모든 쿼리를 캐시한다. localCacheScope=STATEMENT 로 설정하면 로컬 세션은 구문 실행할때만 사용하고 같은 SqlSession에서 두개의 다른 호출사이에는 데이터를 공유하지 않는다.SESSION | STATEMENTSESSION
jdbcTypeForNullJDBC타입을 파라미터에 제공하지 않을때 null값을 처리한 JDBC타입을 명시한다. 일부 드라이버는 칼럼의 JDBC타입을 정의하도록 요구하지만 대부분은 NULL, VARCHAR 나 OTHER 처럼 일반적인 값을 사용해서 동작한다.JdbcType 이늄. 대부분은 NULL, VARCHAR 나 OTHER 를 공통적으로 사용한다.OTHER
lazyLoadTriggerMethods지연로딩을 야기하는 객체의 메소드를 명시메소드 이름을 나열하고 여러개일 경우 콤마(,) 로 구분equals,clone,hashCode,toString
defaultScriptingLanguage동적으로 SQL을 만들기 위해 기본적으로 사용하는 언어를 명시타입별칭이나 패키지 경로를 포함한 클래스명org.apache.ibatis.scripting.xmltags.XMLLanguageDriver
callSettersOnNulls가져온 값이 null일때 setter나 맵의 put 메소드를 호출할지를 명시 Map.keySet() 이나 null값을 초기화할때 유용하다. int, boolean 등과 같은 원시타입은 null을 설정할 수 없다는 점은 알아두면 좋다.true | falsefalse
returnInstanceForEmptyRowMyBatis, by default, returns null when all the columns of a returned row are NULL. When this setting is enabled, MyBatis returns an empty instance instead. Note that it is also applied to nested results (i.e. collectioin and association). Since: 3.4.2true | falsefalse
logPrefix마이바티스가 로거(logger) 이름에 추가할 접두사 문자열을 명시문자열설정하지 않음
logImpl마이바티스가 사용할 로깅 구현체를 명시 이 설정을 사용하지 않으면 마이바티스가 사용할 로깅 구현체를 자동으로 찾는다.SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING설정하지 않음
proxyFactory마이바티스가 지연로딩을 처리할 객체를 생성할 때 사용할 프록시 툴을 명시CGLIB | JAVASSISTJAVASSIST (마이바티스 3.3과 이상의 버전)
vfsImplVFS 구현체를 명시콤마를 사용해서 VFS구현체의 패키지를 포함한 전체 클래스명
useActualParamName메소드 시그니처에 명시된 실제 이름으로 구문파라미터를 참조하는 것을 허용 이 기능을 사용하려면 프로젝트를 자바 8의 -parameters옵션을 사용해서 컴파일해야만 한다.(마이바티스 3.4.1이상의 버전)true | falsetrue


Comments