web-dev-qa-db-fra.com

@Autowired vs @PersistenceContext pour le bean EntityManager

Quelle est la différence entre:

@Autowired
private EntityManager em;

contre:

@PersistenceContext
private EntityManager em;

Les deux options fonctionnent dans mon application, mais puis-je casser quelque chose en utilisant le @Autowired annotation?

40
Cosmin Vasii

@PersistenceContext vous permet de spécifier l’unité de persistance à utiliser. Votre projet peut avoir plusieurs sources de données connectées à différents DB et @PersistenceContext vous permet de dire lequel vous voulez opérer

vérifiez l'explication ici: http://www.coderanch.com/t/481448/Java-EJB-SCBCD/certification/unitName-PersistenceContext

23
sashok_bg

@PersistenceContext est une annotation standard JPA conçue pour cet usage spécifique. Tandis que @Autowired est utilisé pour toute injection de dépendance au printemps. En utilisant @PersistenceContext vous donne un plus grand contrôle sur votre contexte car il vous permet de spécifier des éléments facultatifs, par exemple. nom, propriétés

12
Alex

@ PersistenceContext:

pas retourner l'instance du gestionnaire d'entités

retourne proxy géré par conteneur qui acquiert et libère le contexte de présence pour le compte du code de l'application

11
MagGGG