Fragen zu PersistenceUnit, PersistenceContext, ORM Framework

Rudolf

Bekanntes Mitglied
Hallo Leute,

der Einstieg in JPA ist nicht so ganz leicht wie ich finde.

Also erstmal frage ich mich welches ORM zu verwenden ist, Hibernate, EclipseLink, TopLink usw usf. Hibernate ist wohl das bekannteste, unterstützt aber nicht den Standard und kann im Vergleich zu EclipseLink einige Dinge nicht. Meiner Meinung nach ist es wie mit JSP und JSF. Wenn man mit Webentwicklung anfängt, sollte man direkt mit JSF anfangen, da es den aktuellen Standard ausmacht. Wie sieht es bei ORM aus, ist Hibernate mit JSP zu vergleichen oder sollte man lieber auf einem anderen ORM aufsetzen? Vielleicht können einige aus ihren Erfahrungen berichten.

Ein anderer Punkt ist, dass ich vielen Code sehe, der folgendermaßen aufgebaut ist:

Java:
ublic class UserBean {

	private User user;
	@PersistenceUnit(unitName = "default")
	private EntityManagerFactory emf;
	@PersistenceContext
	private EntityManager em;
	@Resource
	private UserTransaction utx;

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

}

Die Frage ist. Wozu gibt es PersistenceUnit, PersistenceContext und UserTransaction und wo werden die Daten initialisiert?

Gibt es eine bombastische Anfangslektüre zu JPA im Internet?
 
A

Andgalf

Gast
Hibernate ist wohl das bekannteste, unterstützt aber nicht den Standard
sagt wer???


ist Hibernate mit JSP zu vergleichen oder sollte man lieber auf einem anderen ORM aufsetzen? Vielleicht können einige aus ihren Erfahrungen berichten.

Nein, das kann man nicht vergleichen, dass sind völlig unterschiedliche Dinge. Halte dich hier einfach an den Standard. Der Standard ist JPA. Welche Implementierung du hier verwendest (Hibernate, Toplink ...) ist IMHO schnuppe.


Die Frage ist. Wozu gibt es PersistenceUnit, PersistenceContext und UserTransaction und wo werden die Daten initialisiert?

Die werden vom Container "gemanagt" und dann injected ... sagt dir Dependency Injection was?
Wofür sie im einzelnen gut sind kannst du hier nachlesen:

Grundlagen der JPA

oder direkt in der Doku:
Java Persistence API
 
P

pL4Gu333

Gast
Halte dich hier einfach an den Standard. Der Standard ist JPA. Welche Implementierung du hier verwendest (Hibernate, Toplink ...) ist IMHO schnuppe.

man sollte sich bloß für eine Implementierung entscheiden und diese dann auch nutzen. Da Switches zwischen den Implementierungen, obwohl es der selbe Code ist, leider ein paar unterschiedliche Defaults bzw. andere Verhalten haben können
 

KSG9|sebastian

Top Contributor
Unterstützt den Standard nicht? Gewagte Aussage..Hibernate war Referenzimplementierung für JPA 1 und ist seit viiiielen Monaten kompatibel zu JPA 2!

Kann weniger als Eclipse-Link? Noch ein Schaudermärchen?
 

Ähnliche Java Themen


Oben