2010-12-27 11 views
0

Ich habe Zweifel am Konzept Ich denke, ich bin ein paar Sachen mischen. Ich habe eine Anwendung mit DAO-Schicht die Implementierung dieser DAO verwenden SessionFactory (Hibernate), um die CRUD-Operation auszuführen, ich habe auch eine Service-Schicht und meine Arbeitseinheit mit Spring Declarative Transaction zu verwalten, und alles funktioniert gut, ich bin mir nicht sicher Ob EntityManager oder nicht, aber es scheint, dass es meine Arbeitseinheit verwaltet (dasselbe, was ich mit Spring mache).EntityManager + Spring Transactional Frage

Wann sollte ich den EntityManager verwenden? Was sind die Vorteile der Verwendung? Warum sollte ich es benutzen?

Vielen Dank.

Antwort

2

EntityManager ist für JPA was SessionFactory für Hibernate ist. Spring kann Ihre Transaktion weiterhin verwalten, selbst wenn Sie JPA verwenden. Wenn Ihr JPA-Anbieter Hibernate ist, können Sie Hibernate- und JPA-Dateien sicher mischen und abgleichen, wenn beide zusammenarbeiten.

kommen nun zu der Frage, wann EntityManager und die Vorteile zu nutzen:

Wenn Sie ein neues Projekt beginnen, und wenn Sie 2 JPA verwenden können, dann empfehle ich Ihnen, es als JPA beginnen ist die Spezifikation (Mittel Wenn Sie sich an die Spezifikation halten, können Sie die Implementierungen ändern, ohne den Code zu ändern. Eclipseling, DataNucleus, OpenJPA sind einige Beispielimplementierungen der JPA-Spezifikation. Wenn Sie nicht zu JPA 2 wechseln können, empfehle ich Ihnen, sich an Hibernate zu halten.

gehen auch durch die folgenden Beiträge

What does Hibernate/Toplink offer above JPA?

JPA or Hibernate for Java Persistence?

JPA 1 is not good enough