사용자 도구

사이트 도구


java:hibernate:mssqlserver

Hibernate & MS SQL Server

NVARCHAR Dialect 매핑

Entity에 NVARCHAR 컬럼 선언을 하려면

  • SQLServer2008Dialect에서 NVARCHAR registerColumnType 돼 있음 따라서 이 이후 버전 Dialect를 사용하면 NVARCHAR 매핑이 작동한다.
  • @org.hibernate.annotations.Nationalized 애노테이션을 통해 NVARCHAR 로 Entity Column 매핑을 할 수 있다.
    // NVARCHAR 매핑
    @Basic
    @Nationalized
    public String description;
     
     
    // NCLOB 매핑
    @Lob
    @Basic
    @Nationalized
    public NClob description;

SELECT 결과 컬럼에 NVARCHAR 등이 있을 경우에 해석을 위한 Dialect 추가 설정

package com.nhl.dao;
import java.sql.Types;
import org.hibernate.dialect.SQLServerDialect;
import org.hibernate.type.StandardBasicTypes;
 
public class SQlServerDBDialect extends SQLServerDialect {
 
public SQlServerDBDialect() {  super();
        registerHibernateType(Types.NCHAR, StandardBasicTypes.CHARACTER.getName()); 
        registerHibernateType(Types.NCHAR, 1, StandardBasicTypes.CHARACTER.getName());
        registerHibernateType(Types.NCHAR, 255, StandardBasicTypes.STRING.getName());
        registerHibernateType(Types.NVARCHAR, StandardBasicTypes.STRING.getName());
        registerHibernateType(Types.LONGNVARCHAR, StandardBasicTypes.TEXT.getName());
        registerHibernateType(Types.NCLOB, StandardBasicTypes.CLOB.getName());
 
} }
java/hibernate/mssqlserver.txt · 마지막으로 수정됨: 2018/09/10 13:44 저자 kwon37xi