2010-12-27 4 views
0

J'ai un doute sur le concept je pense que je mélange quelques trucs. J'ai une application avec DAO couche l'implémentation de ces DAO utiliser SessionFactory (Hibernate) pour exécuter l'opération CRUD, j'ai aussi une couche de service et gérer mon unité de travail avec Spring Declarative Transaction, et tout fonctionne bien, je ne suis pas sûr de que ce soit pour utiliser EntityManager ou non, mais il semble que ce qu'il fait est de gérer mon unité de travail (même chose que je fais avec Spring).EntityManager + Spring Transactional Question

Quand devrais-je utiliser EntityManager? Quels sont les avantages de l'utiliser? Pourquoi devrais-je l'utiliser?

Merci.

Répondre

2

EntityManager est pour JPA ce que SessionFactory est pour Hibernate. Spring peut toujours gérer votre transaction même si vous utilisez JPA. Si votre fournisseur JPA est Hibernate, vous pouvez mélanger et assortir Hibernate et JPA en toute sécurité pendant qu'ils travaillent ensemble.

Venons-en maintenant à la question de savoir quand utiliser EntityManager et les avantages:

Si vous commencez un nouveau projet et si vous pouvez utiliser JPA 2 alors je vous suggère de commencer à l'utiliser comme JPA est la spécification (moyens que si vous vous en tenez à la spécification, vous pouvez changer les implémentations sans changer le code: Eclipseling, DataNucleus, OpenJPA sont quelques exemples d'implémentations de spécification JPA). Si vous ne pouvez pas passer à JPA 2, je vous suggère de vous en tenir à Hibernate.

aussi passer par les postes ci-dessous

What does Hibernate/Toplink offer above JPA?

JPA or Hibernate for Java Persistence?

JPA 1 is not good enough

Questions connexes