package org.hibernate.examples.hibernate.config; import org.hibernate.cfg.ImprovedNamingStrategy; /** * 클래스, 속성명을 ORACLE 명명규칙을 사용하여 DB 엔티티의 요소를 변경한다. * * @author 배성혁 sunghyouk.bae@gmail.com * @since 2013. 11. 28. 오전 9:49 */ public class OracleNamingStrategy extends ImprovedNamingStrategy { /** * 지정된 클래스의 단어들을 underscore(_) 로 구분된 문자열로 변환합니다. (UserFigure => USER_FIGURE) * * @param className 클래스 명 * @return Oracle 명명 규칙에 따른 테이블명 */ @Override public String classToTableName(String className) { return super.classToTableName(className).toUpperCase(); } /** * 지정된 속성명의 단어들을 underscore(_) 로 구분된 문자열로 변환합니다. (UserId => USER_ID) * * @param propertyName 속성명 * @return Oracle 명명 규칙에 따른 컬럼명 */ @Override public String propertyToColumnName(String propertyName) { return super.propertyToColumnName(propertyName).toUpperCase(); } /** * 지정된 테이블명의 단어들을 underscore(_) 로 구분된 문자열로 변환합니다. (UserFigure => USER_FIGURE) * * @param tableName * @return */ @Override public String tableName(String tableName) { return super.tableName(tableName).toUpperCase(); } /** * 지정된 컬럼명의 단어들을 underscore(_) 로 구분된 문자열로 변환합니다. (UserId => USER_ID) * * @param columnName 컬럼명 * @return Oracle 명명 규칙에 따른 컬럼명 */ @Override public String columnName(String columnName) { return super.columnName(columnName).toUpperCase(); } private static final long serialVersionUID = -4830733993241581835L; }