Hibernate Welche Bibliothek?

denis7788

Bekanntes Mitglied
Ich möchte gerne Hibernate in meinem Webprojekt nutzen (in Netbeans8, mit Glassfish 4.1.1.).
Welche ist denn die richtige Library, die ich dem Projekt hinzufügen muss? Hier stehen drei zur Auswahl:
- Hibernate 4.3.x
- Hibernate 4.3.x(JPA2.1)
- Hibernate 4.3.x Modelgen.

Und wie kann ich denn dafür sorgen, dass bei der Erstellung eines neuen Projekts Hibernate neben den anderen Frameworks, wie JSF usw. auch zur Auswahl steht?
 

klauskarambulut

Bekanntes Mitglied
Keine von diesen.

Der Glassfish ist JEE7 konform.

JEE7 ist eine API
JPA ist eine API die in JEE7 vorhanden ist.
Hibernate ist eine Implementierung der JPA-API.

Das heißt in Netbeans angeben, dass man ein JEE7 Projekt erstellen möchte.
Dort verwendet man dann die JPA Annotationen und evtl. noch eine persistence.xml.
Beim Deployen stellt der Glassfish dann eine Implementierung für JPA bereit, also Hibernate, EclipseLink oder was es sonst noch so gibt und die Glassfish-Macher für das beste Halten. Man kann sogar eine DataSource im AS einstellen und dann über einen Lookup in der Anwendung darauf zugreifen.
 

denis7788

Bekanntes Mitglied
Keine von diesen.

Der Glassfish ist JEE7 konform.

JEE7 ist eine API
JPA ist eine API die in JEE7 vorhanden ist.
Hibernate ist eine Implementierung der JPA-API.

Also ich verstehe, dass Hibernate eine mögliche Implementierung von JPA ist. Was ich nicht verstehe ist, warum ich diejenige Implementierung, die ich nutzen möchte (also bei mir Hibernate) nicht in mein Projekt einbinden muss. Also an irgendeiner Stelle muss ich doch angeben: Ich nutze Hibernate, hier hast du die Bibliotheken, die benötigt werden. Oder werden diese von Glassfish zur Verfügung gestellt?


Dort verwendet man dann die JPA Annotationen und evtl. noch eine persistence.xml.
...
Man kann sogar eine DataSource im AS einstellen und dann über einen Lookup in der Anwendung darauf zugreifen.
Ich habe eine DataSource erstellt und diese in der Hibernate Konfiguration angegeben. Dort habe ich beispielsweise auch den SQL Dialekt usw. angegeben. Kann ich mir die Hibernate Config komplett sparen und diese Infos in der persistance.xml unterbringen?

.....die aktuelle Version ist übrigens 5.1.x
Ich habe Hibernate in Netbeans über die Project Properties->Frameworks eingefügt. Damit habe ich die Version 4.3.1 bekommen. Kann ich über Netbeans auch die neueste Version einbinden?
 

klauskarambulut

Bekanntes Mitglied
Mal ein Beispiel von Adam Bien

https://github.com/AdamBien/doit/tree/master/doit

Er verwendet eine Persistence XML mit minimalem Inhalt.
https://github.com/AdamBien/doit/blob/master/doit/src/main/resources/META-INF/persistence.xml

Build wie üblich mit Maven
https://github.com/AdamBien/doit/blob/master/doit/pom.xml
Als Dependency wird ausser Primefaces und Junit lediglich JEE 7 genannt.
javax:javaee-api:7.0:provided
Und diese Abhängigkeit wird nur zum Compilieren verwendet und landet nicht im war-File. Beinhaltet indirekt JPA.

Eine Entity DoIt die via JPA annotiert wurde
https://github.com/AdamBien/doit/bl...acks/doit/business/reminders/entity/ToDo.java

Verwendung der Entity mit einem durch CDI injeziertem EntityManager (@PersistenceContext)
https://github.com/AdamBien/doit/bl.../business/reminders/boundary/ToDoManager.java

Alles andere macht der AS. Dort wird die Datenbank konfiguriert die verwendet werden soll (JDBC-Treiber, User, PW).
Die Anwendung ist nur gegen JPA implementiert. Der AS hat eine passende Implementierung und stellt diese zur Verfügung.

TL;DR
Du sagst mach JPA Zeug.
Glassfish hat eine JPA Implementierung und sorgt dafür dass das JPA Zeug damit erledigt wird.
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Welche Datenbankanbindung am besten Nehmen? Data Tier 4

Ähnliche Java Themen

Neue Themen


Oben