본문 바로가기

Java/mybatis

[javaModel, sqlMap]Generator 및 table 엘리먼트에서 설정 가능한 프로퍼티

1. javaModelGenerator

 Properties

Description 

 constructorBased

 클래스의 전체 필드를 가진 생성자를 만들지 설정한다. 이 프로퍼티를 사용하면 각 필드에 대해 setter 메소드보다는 생성자를 사용하게 처리한다. 단, 이 프로퍼티는 마이바티스를 위한 옵션으로 아이바티스에서는 무시한다.

선택할 수 있는 값은 true, false 두 가지 값 중 하나이며,

[디폴트 값은 false이다.]

 enableSubPackages

대상 테이블의 스키마 이름을 하위 패키지로 사용할지에 대한 옵션이다. 예를 들어 테이블명이 mytable이고 스키마를 myschema로 가정하자. targetPackage 속성을 madnix로 설정하고 이 프로퍼티를 true로 설정하면 생성된 파일들은 madnix.myschema 패키지 아래에 생성한다. 이 프로퍼티가 false라면 madnix 패키지 아래에 생성한다. 

[디폴트 값은 false이다.]

 immutable 

 모델 클래스를 불변 객체로 생성할지 결정한다. 불변 객체를 자바 클래스의 필드를 가진 생성자와 각각에 대한 getter 메소드를 생성하지만 setter 메소드는 생성하지 않는다. 이 프로퍼티는 마이바티스를 위한 옵션으로 아이바티스에서는 무시한다.

table 엘리먼트에서 테이블별로 이 프로퍼티를 무시할 수 있다.

[디폴트 값은 false이다.]

 rootClass 

 모델 클래스의 가장 상위 클래스를 지정한다. 모델 클래스의 상위 클래스는 대개 equals(), toString(), hashcode() 메소드를 재정의해서 사용하기 위해 만들기도 한다.

 trimStrings 

데이터베이스에서 가져온 값에서 앞뒤로 공백을 제거하기 위해 사용한다. 이 프로퍼티를 사용하면 데이터 조회 후 가져온 값에서 앞뒤로 공백을 제거하는 코드를 삽입한다. 

[디폴트 값은 false이다.]

 

 

2. sqlMapGenerator

Properties

Description

 enableSubPackages

 대상 테이블의 스키마 이름을 하위 패키지로 사용할지에 대한 옵션이다. 예를 들어 테이블명이 mytable이고 스키마가 myschema라고 가정하자. targetPackage 속성을 madnix로 설정하고 이 프로퍼티를 true로 설정하면 생성된 파일들은 madnix.myschema 패키지 아래에 생성된다. 이 프로퍼티가 false라면 madnix 패키지 아래 생성한다.

[디폴트 값은 false이다.]

 

 

3. table

 Properties

Description 

 useActualColumnNames

 자바 모델 클래스에서 컬럼명에 대응하는 필드의 이름에 컬럼명을 그대로 사용할지 낙타 표기법을 사용할지를 선택한다. 선택할 수 있는 값은 true, false 두 가지이고, 디폴트는 false이다.

true를 설정하고 컬럼명이 start_date라고 한다면 모델 클래스의 필드명이 start_date가 되고 setter/getter 메소드는 각각 setStart_date(),

getStart_date()가 된다.

false로 설정하고 컬럼명이 start_date라면 모델 클래스의 필드명은 startDate가 되고, setter/getter 메소드는 각각 setStartDate(), getStartDate()가 되며, 이를 설정하기 위한 결과 매핑 설정을 추가한다.

 ignoreQualifiersAtRuntime

 생성하는 SQL의 테이블명에 스키마 이름을 붙일지 여부를 결정한다. 여러 개의 스키마를 사용해서 작업할 때 각각의 테이블이 속한 스키마를 표기하면 사용하기 편하다.

[디폴트 값은 false로 테이블 앞에 스키마 이름을 붙힌다.]

 useColumnIndexes

 컬럼명 대신 컬럼의 인덱스를 사용해서 처리한다. 성능상 미세하게 좋지만, 마이바티스는 지원하지 않고 아이바티스만 지원한다.