사용자 도구

사이트 도구


java:hibernate:dialect

차이

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

차이 보기로 링크

다음 판
이전 판
java:hibernate:dialect [2018/05/24 17:11]
kwon37xi 만듦
java:hibernate:dialect [2020/08/21 13:55] (현재)
kwon37xi
줄 2: 줄 2:
  
 ===== registerHibernate ===== ===== registerHibernate =====
-''registerHibernateType''은 Hibernate 컬럼의 기본 매핑타입을 지정한다. +  * ''registerHibernateType''은 Hibernate 컬럼의 기본 매핑타입을 지정한다. 
 +  * 현재 추측으로는 SQL Query에서 ''SELECT''의 결과로 나오는 값의 타입이 JDBC의 ''java.sql.Types'' 중에 어떤 것일 경우, 해당 타입을 Hibernate의 ''org.hibernate.type.Type'' 중 어떤 것으로 변환해야하는지에 대한 정보로 보인다. 
 +  * ''org.hibernate.dialect.Dialect'' 참조 
 +  * 예를 들어 다음 선언은 ''select'' 해온 컬럼이 JDBC에서 type이 ''Types.CHAR'' 일경우 Hibernate가 ''StandardBasicTypes.CHARACTER''에게 그 값을 읽는 역할을 맡기게 되는 식?<code java> 
 +registerHibernateType( Types.CHAR, StandardBasicTypes.CHARACTER.getName() ); 
 +</code> 
 +===== registerColumnType ===== 
 +  * 이 메소드는 Entity에 정의하는 컬럼 타입선언으로 보인다. 
 +  * 예를들어 아래 내용은 ''java.util.Date'' 컬럼에 대해서 테이블을 생성할 때 ''datetime(6)'' 로 선언하지 않을까?<code java> 
 +registerColumnType( Types.TIMESTAMP, "datetime(6)" ); 
 +</code>
  
 ===== function ===== ===== function =====
   * ''dialect'' 클래스에서 ''registerFunction''을 호출하여 사용자 정의 함수를 등록할 수 있다.   * ''dialect'' 클래스에서 ''registerFunction''을 호출하여 사용자 정의 함수를 등록할 수 있다.
   * [[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.1527149465.txt.gz · 마지막으로 수정됨: 2018/05/24 17:11 저자 kwon37xi