NVARCHAR
를 인식하지 못하는 문제 발생시 아래 오류 발생org.hibernate.MappingException: No Dialect mapping for JDBC type: -9
registerColumnType
돼 있음 따라서 이 이후 버전 Dialect를 사용하면 NVARCHAR 매핑이 작동한다.@org.hibernate.annotations.Nationalized
애노테이션을 통해 NVARCHAR
로 Entity Column 매핑을 할 수 있다.// NVARCHAR 매핑 @Basic @Nationalized public String description; // NCLOB 매핑 @Lob @Basic @Nationalized public NClob description;
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()); } }
registerHibernateType
은 Hibernate Dialect 참조