2016-11-27 3 views
2

엔티티에서 YearMonth를 어떻게 사용합니까? 나는 변환기에 대한 스택 오버플로 응답을 많이 본 적이 있습니까? 아직도 필요한가? 그렇다면 어떻게해야 할까?엔터티 내의 유형으로 java.time YearMonth

@Basic(optional = false) 
@NotNull 
@Column(name = "cc_exp_date") 
private YearMonth ccExpDate; 

예외는 아래에 있습니다. 이 값을 set 메소드 내에서 날짜로 변환하고 엔티티 get 메소드 내 YearMonth로 다시 변환 할 수 있습니까?

MysqlDataTruncation: Data truncation: Incorrect date value: '\xAC\xED\x00\x05sr\x00\x0Djava.time.Ser\x95]\x84\xBA\x1B"H\xB2\x0C\x00\x00xpw\x06\x0C\x00\x00\x07\xE2\x02x' for column 'cc_exp_date' at row 1 
+0

귀하의 JPA 공급자가 자바 직렬화 바이트 스트림으로 직렬화한다. 어떤 공급자입니까? 예를 들어 Hibernate는 선택적 종속성을 가진 Java 8 유형을 처리합니다. – chrylis

+0

Eclipselink를 사용하고 있습니다. – Grim

답변

3

는 JPA 2.1 승인 후 추가 된 Java8 클래스이기 때문에 당신의 JPA 공급자가이 경우에 합리적인 방식으로 유형 (유지되지 않는 경우, 당신이는 EclipseLink를 사용하고 있기 때문에 'hasn 새로운 형식을 지원하는 데 늦은 업데이트가 많은 경우) JPA 2.1 AttributeConverter을 정의하여 표준 JPA 지속 가능 유형 (이 경우는 java.sql.Date과 같은 형식)으로 변환해야합니다.

다른 JPA 제공자가 상자 밖으로 같은 유형을 지속 지원 (DataNucleus JPA 확실히 수행 및 최대 절전 모드도 아마 옵션 의존성?)

+0

JPA의 다음 릴리스에 포함될 것으로 가정합니다 ..... – Grim

+0

좋은 답변입니다! –

관련 문제