사용자 도구

사이트 도구


java:hibernate:dialect

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
java:hibernate:dialect [2018/05/24 17:56]
kwon37xi [registerColumnType]
java:hibernate:dialect [2020/08/21 13:55]
kwon37xi
줄 10: 줄 10:
 ===== registerColumnType ===== ===== registerColumnType =====
   * 이 메소드는 Entity에 정의하는 컬럼 타입선언으로 보인다.   * 이 메소드는 Entity에 정의하는 컬럼 타입선언으로 보인다.
-  * 예를들어 아래 내용은 ''java.util.Date'' 컬럼에 대해서 테이블을 생성할 때 ''datetime(6)'' 필드로 생성하지 않을까?<code java>+  * 예를들어 아래 내용은 ''java.util.Date'' 컬럼에 대해서 테이블을 생성할 때 ''datetime(6)'' 로 선언하지 않을까?<code java>
 registerColumnType( Types.TIMESTAMP, "datetime(6)" ); registerColumnType( Types.TIMESTAMP, "datetime(6)" );
 </code> </code>
줄 18: 줄 18:
   * [[http://marzapol.wordpress.com/2013/07/23/custom-function-is-hibernate/|Custom function is Hibernate | marzapol]] 사용자 정의 함수 추가   * [[http://marzapol.wordpress.com/2013/07/23/custom-function-is-hibernate/|Custom function is Hibernate | marzapol]] 사용자 정의 함수 추가
   * 파라미터가 있는 것 없는 것 등 다양하게 선언한다.   * 파라미터가 있는 것 없는 것 등 다양하게 선언한다.
 +
 +===== org.hibernate.dialect.Dialect#getMaxAliasLength =====
 +  * 'org.hibernate.dialect.Dialect#getMaxAliasLength'' 는 SQL 생성시 table 이나 column의 alias 의 글자수 제한을 결정한다.
 +  * 문제는 일부 DB의 경우([[database:oracle|Oracle Database]]) 이를 byte 단위로 계산한다.
 +  * 즉, oracle 은 30글자로 제한돼 있는데, 한글의 경우 인코딩에 따라 3byte, 2byte 왔다갔다 하므로 Java에서는 한글을 1글자로 계산하고, DB는 3글자로 계산하는등 맞지 않는 문제가 발생한다.
 +  * 그냥 짧게 max 10 으로 override 하는게 좋을 것 같다.
 +  * [[https://prismoskills.appspot.com/lessons/Hibernate/Chapter_23_-_Hibernate_alias_names.jsp|Hibernate Alias Names - PrismoSkills]]
java/hibernate/dialect.txt · 마지막으로 수정됨: 2020/08/21 13:55 저자 kwon37xi