..


Link-uri sponsorizate

Data Access - Crearea DAO şi tranzacţii de management

Referindu-se la exemplul de la punctul precedent, vom vedea cum se creează DAO a Car entităţii.

Mai întâi de toate creaimo o interfaţă cu metode bazate pe o DAO, şi anume: sarcina, salva, update si delete.






 it.mrwebmaster.hibernate.dao pachet;









 importurilor it.mrwebmaster.hibernate.Car;









 CarDao {public interfaţă





  



 Maşină de încărcare publice (Integer id);



	

  



 salvaţi Car publice (Car);



	

  



 actualizare Car publice (Car);



	

  



 void eliminarea publice (Car);







 }



Creat treci la crearea de punere în aplicare interfaţă:





 it.mrwebmaster.hibernate.dao pachet;









 importurilor it.mrwebmaster.hibernate.Car;









 importurilor javax.persistence.EntityManager;







 importurilor javax.persistence.PersistenceContext;









 importurilor org.springframework.transaction.annotation.Transactional;









 @ Tranzactionala







 CarDaoImpl {public class implementeaza CarDao





  



 @ PersistenceContext (unitName = "PU")



  



 privat EntityManager em;



	

  



 @ Override



  



 void eliminarea publice (Car) {



    



 em.remove (char);



  



 }





  



 @ Override



  



 @ Tranzactionala (readonly = true)



  



 Maşină de încărcare publice (Integer id) {



    



 întoarcere em.find (Car.class, id);



  



 }





  



 @ Override



  



 salvaţi Car publice (Car) {



    



 em.persist (char);



    



 Maşină întoarcere;



  



 }





  



 @ Override



  



 actualizare Car publice (Car) {



    



 em.merge retur (char);



  



 }





  



 void setEm publice (EntityManager em) {



    



 this.em = p;



  



 }





  



 getEm publice EntityManager () {



    



 întoarcere p;



  



 }







 }



şi în cele din urmă în "applicationContext.xml:





 <-! CAR DAO ->







 <bean id="carDaoImpl" class="it.mrwebmaster.hibernate.dao.CarDaoImpl" />



După cum se poate observa la punerea în aplicare a DAO avem nevoie de nosta EntityManager, care este injectat direct de la CIO, noi ", prin utilizarea de adnotare @ PersistenceContext.

Implementări ale metodelor individuale sunt triviale, pur şi simplu delegat all'EntityManager de lucru. În ceea ce priveşte gestionarea tranzacţie, a ales să utilizeze adnotare @ Tranzactionala. Acest lucru permite de primăvară pentru a crea instanţă de DAO nostru va utiliza un proxy al cărui loc de muncă este de a deschide şi închide operaţiunile înainte de a apela la o metodă şi imediat după "ieşire din sine, metoda este de a face o comite sau a unei rollback în caz de eroare.
Notă, în cele din urmă, utilizarea nell'annotation Tranzactionala @ ReadOnly pentru metoda de încărcare, în acest sens a creat o tranziţie în read-only.

Acest management de tranzacţii se realizează prin utilizarea de AOP, care să îi permită doar să adăugaţi la applicazionContext.xml nostru:






 <- Management de tranzacţii ->







 <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">



  



 <property name="entityManagerFactory" ref="entityManagerFactory" />







 </ Bean>







 <tx:annotation-driven transaction-manager="transactionManager" />



Java de primăvară Ghid
E-Learning
Linux (Curs) Linux (Curs)
Ghid complet pentru open-source de sistem. Incepand de la 49 €.
PHP (Curs) PHP (Curs)
Cursul completa pentru crearea de site-uri Web dinamice. Incepand de la 49 €.
Ruby şi Ruby on Rails (Curs) Ruby şi Ruby on Rails (Curs)
Crearea de aplicatii software si web cu Ruby şi RoR. Incepand de la 39 €.
Link-uri sponsorizate