2014-10-19 3 views
11

JPA와 Hibernate는 현재 JDK8 (JPA ticket, 최대 절전 모드 ticket)에서 JSR-310에 의해 가져온 새로운 날짜/시간 클래스를 지원하지 않습니다. 그럼에도 불구하고 JDK8 날짜/시간 클래스로 코드를 작성하고 마침내 잘 설계되었습니다. 특히 java.time.Instant에 관심이 있습니다. java.time.* 유형을 전적으로 지원하지는 않습니다. 모든 본인이이 특정 클래스를 사용하게됩니다. (또는 적어도 지금 생각하면 적어도 :-)JPA2/Hibernate를 사용하는 java.time.Instant (JDK8)

한 가지 옵션은 type converter, JPA 2.1에 정의 된대로. 그러나 우리의 어플리케이션 서버는 JPA 2.0이지만 2.1 호환이 아닌 JBoss EAP 6.3입니다. 따라서 이것은 현재 의문입니다.

다음 옵션은 Hibernate 사용자 유형 (다른 JSR-310 클래스 변환에 대한 블로그 게시물 here)을 사용하는 것입니다.

더 좋은 옵션이 있습니까? 감사.

+0

에 병합 된 예 : http://jadira.sourceforge.net/index.html –

답변

13

사용 중 하나가 5.2.0+를 최대 절전 모드 또는 이전 최대 절전 모드 5 추가를위한 다음 종속성 :

더 이상 Ipandzic의 코멘트에서 hibernate-java8 의존성을 포함해야하고 추가 단계없이 같은 LocalDateTime 또는 인스턴트 같은 java.time.* 클래스를 사용할 수 있습니다 - 최대 절전 모드 5.2에서
+0

감사합니다 : 당신이 최대 절전 모드 사용자 유형을 정의하는 라이브러리를 사용합니다. 아직 하이버 네이트 5를 사용할 수는 없지만 베타 버전에 불과합니다. – wishihadabettername

+0

Np, 곧 나올 것입니다. 출시 예정은 2015 년 5 월 27 일로 [여기] (https://hibernate.atlassian.net/projects/HHH?selectedItem=com.atlassian.jira.jira-projects-plugin:release-page) – lpandzic

+0

을 참조하십시오. 슬프게도, 그들은 릴리스 일정을 변경했으며, 현재 CR1 버전 만 사용할 수 있습니다. – lpandzic

3

는 이후이 문제가 더욱 완벽하게 해결 없습니다. java.util.LocalDateTime 등을 더한 Temporal으로 더 이상 열을 표시 할 필요가 없습니다. 이전 java.util.Date 접근 방식과 동일합니다.

는 최대 절전 모드 5.2 이후, hibernate-java8 내용은 hibernate-coresee the change notes here

관련 문제