Минимальная версия спящего режима, совместимая с java8

У меня есть страшное время, пытаясь выяснить, какая из них - минимальная версия Hibernate, которая поддерживает запуск java8 JRE, где пользовательский код будет использовать функции java8.

Я нашел эту ошибку, но в нем говорится об использовании функций java8 в hibernate, запланированных для спящего режима 5.2 и, наверняка, hibernate 4.3.1 уже поддерживает java8, так как Wildfly отправляет его и утверждает, что полностью поддерживает java8.

Я попытался найти в hibernate bug tracker ошибки, связанные с java8, но снова все они "слишком новые".

Наконец, я искал в выпусках Hibernate для версий .0 и снова безуспешно: кажется, что в примечаниях к выпуску будут описаны только изменения с предыдущего RC или бета-релиза... Я пробовал отслеживать все RC и бета-версии релизы для 4.3.0.Final и 4.2.0.Final, но не нашли такого упоминания.

В настоящее время мы используем Hibernate 4.2.12.Final, и мне интересно, можем ли мы просто начать использовать java8 или нам нужно перейти на более новую версию спящего режима (предположительно, 4.3.x).

В некотором контексте мы используем TomEE в качестве сервера приложений. 1.7.0 только что выпущен с поддержкой java8. Однако в случае, если мы должны перейти на hibernate 4.3.x, я немного боюсь, что мы не сможем использовать Hibernate 4.3.x вместе с TomEE, поскольку я видел это: "Однако, Hibernate 4.3+ (JPA 2.1) не поддерживается TomEE, потому что он Java EE 7." . Поэтому мы предпочли бы придерживаться версии 4.2.x немного дольше, если это возможно.

EDIT: Я нашел этот, где кто-то говорит: "Мы используем hibernate (и поддержку 4.3.x) java 8)". Таким образом, возможно, что требуется 4.3.x.

Ответ 1

Это зависит от того, что вы подразумеваете под словом "user code будет использовать функции java8". На моем месте работы мы по-прежнему используем древнюю версию Hibernate 3 и Java 8, и она отлично работает. Однако ни один из наших объектов не использует функции Java 8, но только код, который использует наши сущности.

Я думаю, что проблема с Hibernate и Java 8 будет связана с пониманием того, как сопоставлять объекты, которые используют методы lambdas или по умолчанию, и новые пакеты Optional и time.

Если вам не нужно сопоставлять их, вы должны быть в порядке.

Ответ 2

Помимо совместимости во время выполнения, которая обсуждалась в других ответах, Hibernate предлагает hibernate-java8 модуль с версии 5.0.x - который добавляет Java 8 особенно для типов данных пакета java.time.