..


Sponsede Lenker

Data Access - Lage DAO og transaksjonen ledelse

Med henvisning til eksempelet i foregående ledd, ser vi hvordan du oppretter DAO til foretaket Car.

Først av alt creaimo en interface med metoder basert på en DAO, nemlig: belastning, lagre, oppdatere og slette.






 it.mrwebmaster.hibernate.dao pakke;









 it.mrwebmaster.hibernate.Car import;









 CarDao {public interface





  



 offentlig parkeringsplass belastning (Integer id);



	

  



 spare public Bil (Car bil);



	

  



 Oppdatering public Bil (Car bil);



	

  



 public void fjern (Car bil);







 }



Opprettet pass til etableringen av grensesnittet implementering:





 it.mrwebmaster.hibernate.dao pakke;









 it.mrwebmaster.hibernate.Car import;









 javax.persistence.EntityManager import;







 javax.persistence.PersistenceContext import;









 org.springframework.transaction.annotation.Transactional import;









 @ Transactional







 CarDaoImpl {public class implementerer CarDao





  



 @ PersistenceContext (unitName = "pu")



  



 private EntityManager em;



	

  



 @ Override



  



 public void fjern (Car bil) {



    



 em.remove (char);



  



 }





  



 @ Override



  



 @ Transactional (skrivebeskyttet = true)



  



 offentlig parkeringsplass belastning (Integer id) {



    



 returnere em.find (Car.class, id);



  



 }





  



 @ Override



  



 spare public Bil (Car bil) {



    



 em.persist (char);



    



 returnere bilen;



  



 }





  



 @ Override



  



 Oppdatering public Bil (Car bil) {



    



 em.merge avkastning (char);



  



 }





  



 public void setEm (EntityManager em) {



    



 this.em = p;



  



 }





  



 getEm public EntityManager () {



    



 tilbake p;



  



 }







 }



og til slutt i "applicationContext.xml:





 <- CAR DAO ->







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



Som kan sees å gjennomføre DAO vi trenger nosta EntityManager, som injiseres direkte fra oss "IOC gjennom bruk av merknaden @ PersistenceContext.

Den implementasjoner av de enkelte metodene er triviell, bare delegere arbeidet all'EntityManager. Som for transaksjonen ledelse, har valgt å bruke @ Transactional merknaden. Dette gjør Spring å opprette forekomsten av våre DAO vil bruke en proxy hvis jobb er å åpne og lukke transaksjoner før kallet til en metode, og umiddelbart etter "exit fra selve metoden gjør en commit eller rollback i tilfelle feil.
Note, endelig, har bruken av @ Transactional nell'annotation Skrivebeskyttet for lasten metoden, dermed skapte en overgang i skrivebeskyttet.

Denne transaksjonen ledelse er gjort gjennom bruk av AOP, slik at den bare legge til våre applicazionContext.xml:






 <- Transaction Management ->







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



  



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







 </ Bean>







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



Java Spring Guide
E-Learning
Linux (Course) Linux (Course)
Komplett guide til open-source system. Starter fra 49 €.
PHP (Course) PHP (Course)
Full kurs for å lage dynamiske nettsider. Starter fra 49 €.
Ruby og Ruby On Rails (Course) Ruby og Ruby On Rails (Course)
Opprette programvare og web applikasjoner med Ruby og RoR. Starter fra 39 €.
Sponsede Lenker