2010-03-16 10 views
7

Jakie są zalety i wady Hibernacji & EJB3 względem siebie?Plusy i minusy: Hibernacja vs. EJB 3

Znalazłem wpis this, ale tak naprawdę nie dotyczyło mojego pytania. Jeśli nie mam żadnego konkretnego powiązania z żadną technologią, co spowodowałoby, że wybiorę jedną nad drugą? A może są sytuacje, w których chciałbym użyć obu?

Dzięki Zack

edit: w odpowiedzi na komentarze: Nie wiem zbyt wiele o EJB3. Próbuję się tylko dowiedzieć, czy to jest coś, co byłoby opłacalne dla mojej firmy. Jeśli EJB3 nie jest porównywalny z Hibernate, wyjaśnij dlaczego.

+1

Wow! naprawdę przyklejone pytanie. Myślę, że zespół z szybszymi cyklami release/defect-fix wygrywa tę rundę. Tak długo, jak hibernacja jest zgodna z specyfikacją JPA, to pytanie czai się, ale jeśli zdecydują się na rozgałęzienie i włączenie kilku naprawdę fajnych funkcji, to ... – questzen

+1

Hibernate i EJB3 nie porównują. Zamiast tego można porównać EJB3 i sprężynę. – Bozho

+0

@Bozho Myślę, że chciał zapytać o Hibernate vs. JPA (często pomieszany z EJB3) –

Odpowiedz

9

JPA zapewnia podzbiór funkcji hibernacji, ale EJB3 świadczy inne usługi, które Hibernate nie adres (np Web Services EJB, obsługa timer)

JPA oferuje następujące korzyści w porównaniu do hibernacji:

  • Znormalizowany API
  • niezależność dostawcy (można przełączać się między Hibernate, TopLink, OpenEJB, etc.)

hibernacji oferuje następujące korzyści:

  • Szeroko stosowany
  • De facto standardem
  • bezpośrednie wsparcie Spring, Grails itp
  • Prawdopodobnie lepsze narzędzia wsparcia
  • więcej funkcji niż WZP

Co możesz zrobić, to zapisać swoją aplikację w EJB przy użyciu JPA, a następnie w razie potrzeby użyć funkcji specyficznych dla Hibernacji. Lub po prostu użyj zwykłego Hibernuj dla trwałości, jeśli nie zależy Ci na standaryzacji i zablokowaniu dostawcy. Realistycznie jest mało prawdopodobne, że przełączysz się między Hibernate a innym dostawcą, ale tak się dzieje.

+0

Nitpick: Spring obsługuje także JPA –

+3

tak, ale nie pytał o Spring ... –

Powiązane problemy