Ни JPA, ни Hibernate в настоящее время не поддерживают новые классы даты/времени, представленные JSR-310 в JDK8 (JPA ticket, Hibernate ticket). Тем не менее, я хотел бы кодировать классы даты/времени JDK8, поскольку они, наконец, хорошо разработаны. В частности, меня интересует java.time.Instant
, а не полная поддержка всех типов java.time.*
, так как все мои сущности будут использовать этот класс (или так я думаю сейчас, по крайней мере :-)Персистент java.time.Instant (JDK8) с JPA2/Hibernate
Один из вариантов - написать type converter, как определено JPA 2.1. Тем не менее, нашим сервером приложений является JBoss EAP 6.3, который является JPA 2.0, но не совместим с 2.1, поэтому на этот вопрос сейчас не может быть и речи.
Следующая опция - использовать тип пользователя Hibernate (сообщение в блоге о преобразовании других классов JSR-310 here).
Есть ли лучшие варианты? Благодарю.
Да: использовать библиотеку, которая определяет эти типы пользователей спящего режима для вас: http://jadira.sourceforge.net/index.html –