678 Stimmen

Was ist der Unterschied zwischen JPA und Hibernate?

Ich verstehe, dass JPA 2 eine Spezifikation und Hibernate ein Werkzeug für ORM ist. Ich verstehe auch, dass Hibernate mehr Funktionen hat als JPA 2. Aber was ist aus praktischer Sicht wirklich der Unterschied?

Ich habe Erfahrung mit iBatis und jetzt versuche ich, entweder Hibernate oder JPA2 zu lernen. Ich habe das Buch Pro JPA2 in die Hand genommen und es verweist immer wieder auf den "JPA-Provider". Zum Beispiel:

Wenn Sie der Meinung sind, dass eine Funktion standardisiert werden sollte, sollten Sie sich zu Wort melden. und fordern Sie sie bei Ihrem JPA-Anbieter an

Das verwirrt mich, deshalb habe ich ein paar Fragen:

  • Mit JPA2 allein kann ich Daten aus der DB abrufen, indem ich einfach meine POJOs annotiere
  • Soll JPA2 mit einem "JPA-Provider", z. B. TopLink oder Hibernate, verwendet werden? Wenn ja, welche Vorteile bietet die Verwendung von JPA2 + Hibernate im Vergleich zu JPA2 allein oder im Vergleich zu Hibernate allein?
  • Können Sie ein gutes praktisches JPA2-Buch empfehlen? "Pro JPA2" scheint eher eine Bibel und ein Nachschlagewerk für JPA2 zu sein (es geht erst in der zweiten Hälfte des Buches auf Abfragen ein). Gibt es ein Buch, das einen Problem/Lösungsansatz für JPA2 bietet?

-2voto

Anton Tupy Punkte 941

Bildlich gesprochen ist JPA nur eine Schnittstelle, Hibernate/TopLink eine Klasse (d. h. eine Schnittstellenimplementierung).

Sie müssen eine Schnittstellenimplementierung haben, um die Schnittstelle zu verwenden. Sie können jedoch eine Klasse über eine Schnittstelle verwenden, d. h. Hibernate über die JPA-API verwenden, oder Sie können die Implementierung direkt verwenden, d. h. Hibernate direkt und nicht über die reine JPA-API verwenden.

Ein gutes Buch über JPA ist "High-Performance Java Persistence" von Vlad Mihalcea.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X