2018. 5. 10. 11:17ㆍIT개발/Spring Boot & Spring Data Rest & JPA
현상 : Wrong column type in [테이블] for column create_id. Found: nvarchar, expected: varchar(255)
원인 : 하이버네이트에서 기본적으로 varchar 또는 varchar2은 String 타입과 맵핑하는데 nvarchar로 맵핑되었다고 에러 뿜뿜(못해먹겠다고 들어누운상황)
하이버네이트 문서에 보면, string : A type mapping from java.lang.String to VARCHAR (or Oracle VARCHAR2).
해결 :
1. @Nationalized 사용
예시)
@Nationalized
@Column(name = "CREATE_ID", updatable = false)
private String createId;
2. columnDefinition = "nvarchar" 사용
예시)
@Column(name = "CREATE_ID", columnDefinition = "nvarchar", updatable = false)
protected String createId;
3. SQLServerNativeDialect 사용( 위 2개는 테스트해본결과 정상동작함. 그런데 3번은 테스트 안해봤음... 일단 참고용으로... )
예시)
public class SQLServerNativeDialect extends SQLServerDialect {
public SQLServerNativeDialect() {
super();
registerColumnType(Types.VARCHAR, "nvarchar($l)");
registerColumnType(Types.CLOB, "nvarchar(max)");
}
}
참고 : http://whiteship.tistory.com/1432
'IT개발 > Spring Boot & Spring Data Rest & JPA' 카테고리의 다른 글
JPA @Query의 결과값을 Map 에 담기 (0) | 2021.07.28 |
---|---|
Spring Data Rest에서 EventHandler 동작안할때(별도URL 요청시) (0) | 2018.07.18 |
[Spring Data Rest] Query creation - 쿼리 생성 룰 (0) | 2018.04.27 |
전자정부 3.7 버전에 JPA + Mybatis + Spring Data Rest 적용 (6) | 2018.04.03 |
JPA 사용시, 오라클 데이터타입과 자바 타입 관계 (0) | 2018.03.29 |