2010-07-22 4 views
12

Сегодня утром я был на борту S-Bahn (Немецкое метро), и я встретил одного студента, который работает в IBM. То, что он делает, - это оптимизация Java EE. Я рассказал ему о моем маленьком проекте. И он рекомендовал не использовать «зимнюю школу». Вот почему мой вопрос:Является ли Hibernate устаревшим?

Является ли Hibernate устаревшим? (в сочетании с Java EE/Веб-разработка)

..or сделал он просто болтовня ..

+4

Какой вариант он предложил? – Alex

+1

Мы говорили, что устарели от Hibernate? Использование проприетарного API в отличие от JPA?Внедрение Hibernate? –

+0

@Robert Даже проприетарный API в любом случае не устарел (и используется под капотами). –

ответ

25

Нет, Hibernate не устарел.

Однако теперь есть JPA (Java Persistence API), который является стандартным API для выполнения действий, которые делает Hibernate.

Обратите внимание, что JPA - это только спецификация интерфейса. Вам понадобится что-то, что реализует JPA, а Hibernate - одна из реализаций JPA. Помимо Hibernate, есть несколько других, таких как EclipseLink (официальная эталонная реализация для JPA) и Apache OpenJPA.

+1

По-моему, я все еще придерживаюсь Hibernate (используя аннотации, поскольку это предпочтение по сравнению с XML для сохранения), поскольку у него много вещей, которые JPA еще нет, но лично я буду ждать JPA 2.0. – Deleted

+0

JPA также работает с аннотациями, не обязательно с XML. JPA 2.0 не работает некоторое время, но не все его поддерживает. Я бы выбрал JPA, если нет веских причин использовать простой Hibernate (например, функции, которые вам действительно нужны, которые недоступны через JPA). – Jesper

+0

@ Binary255: JPA 2.0 ** ** есть, и промежуток между JPA 2.0 и Hibernate сейчас тонкий. –

1

JPA только один способ сделать это. Там еще есть Весна и все другие рамки, где Hibernate хорошо жив.

3

Hibernate - поставщик JPA, предлагаемый JBoss, который является сервером Java EE, поэтому я сомневаюсь, что Hibernate в качестве реализации устарел.

Возможно, он имел в виду, что использование Hibernate в Java EE-сервере, минуя стойкость к контейнеру-провайдеру, устарело, и вы должны полагаться на наш контейнер для таких сервисов.

2

Нет, нет способа, чтобы Hibernate устарел. Существует JPA, который является спецификацией персистентности, и Hibernate реализует его. Также Hibernate имеет свои дополнительные функции, которых нет у JPA, и именно поэтому Hibernate является основным источником новых функций, которые добавляются к стандарту JPA.

2

Возможная причина, по которой он предположил, что вы против Hibernate - это то, что для небольшого проекта накладные расходы на понимание Hibernate могут быть весьма значительными.

Hibernate - огромный. Хотя его можно использовать простым способом, но чтобы найти это тоже, вам нужно понять гораздо больше.

но будьте уверены, что Hibernate НЕ устарел или будет в любое время в отдаленном будущем. это просто, если ваши потребности в ORM являются скромными, вы можете попробовать другие решения, такие как iBATIS

4

Hibernate, помимо реализации JPA, предоставляет множество дополнительных функций, которые отсутствуют в JPA (дополнительный синтаксис в запросе , Поддержка QBC и т. Д.). Некоторые из них действительно полезны и трудно найти обходной путь в мире JPA (пока). Без предоставления таких возможностей, то трудно сказать, JPA может «заменить» Hibernate (следовательно, говоря гибернации будучи протестующий)

+0

* Много дополнительных дополнительных функций * больше не соответствует действительности с JPA 2.0. Да, JPA 2.0 по-прежнему не хватает некоторых функций, таких как Query By Example, пользовательских типов пользователей ... но JPA 2.0 является большим улучшением и редко требует особых свойств. –

1

Основываясь на том, что вы сказали, что это звучит как он, возможно, имея в виду Hibernate XML отображения, в контрастирует с использованием аннотаций Hibernate или JPA. XML - это, безусловно, старомодный мусор.

Смежные вопросы