2015-07-10 16 views

risposta

2

@PersistenceContext è un'annotazione standard JPA progettata per tale scopo specifico. Mentre lo @Autowired viene utilizzato per qualsiasi iniezione di dipendenza in primavera. L'utilizzo di @PersistenceContext offre un maggiore controllo sul contesto in quanto fornisce la possibilità di specificare elementi facoltativi, ad es. nome, proprietà

+0

Lo so, ma qual è l'impatto nell'applicazione? Prendi in considerazione l'utilizzo dello standard ** @ Transactional ** da Spring. Quando si utilizza ** @ Autowired **, si verificherà lo stesso comportamento dell'utilizzo di ** @ PersistenceContext ** e la transazione em per applicazione? –

+1

Credo che in genere sia consigliabile utilizzare '@ PersistenceContext' perché descrive più da vicino il tipo di dipendenza da iniezione che si sta tentando di ottenere. Inoltre, fornisce parametri opzionali specifici per l'uso di un EntityManager, questo può essere utile quando si dispone di più di un EntityManager. Funzionalmente credo che si possa ottenere la stessa iniezione con '@ Autowired ', ma vorrei ricorrere all'utilizzo dell'annotazione progettata per essere utilizzata in questo modo. – Alex

+1

Questo http://blog.jhades.org/how-does-spring-transactional-really-work/ lo spiega meglio di me. – Alex

3

@PersistenceContext:

fa non entità di ritorno gestore entità

restituisce container-manag e proxy che acquisisce e rilascia il contesto di presistenza per conto del codice dell'applicazione

Problemi correlati