..


Sponsored Links

Data Access - Erstellen von DAO und Transaktions-Management

Bezugnehmend auf das Beispiel des vorstehenden Absatzes, sehen wir, wie die DAO, um das Unternehmen Car schaffen.

Zunächst creaimo eine Schnittstelle mit Methoden eines DAO, nämlich: Laden, Speichern, Aktualisieren und Löschen.






 it.mrwebmaster.hibernate.dao Paket;









 it.mrwebmaster.hibernate.Car Einfuhren;









 CarDao {public-Schnittstelle





  



 öffentlicher Parkplatz Last (Integer id);



	

  



 sparen öffentlichen Car (Car Auto);



	

  



 Update öffentlichen Car (Car Auto);



	

  



 public void remove (Car Auto);







 }



Erstellt pass auf die Schaffung der Schnittstellen-Implementierung:





 it.mrwebmaster.hibernate.dao Paket;









 it.mrwebmaster.hibernate.Car Einfuhren;









 javax.persistence.EntityManager Einfuhren;







 javax.persistence.PersistenceContext Einfuhren;









 org.springframework.transaction.annotation.Transactional Einfuhren;









 @ Transactional







 CarDaoImpl {public-Klasse implementiert CarDao





  



 @ PersistenceContext (unitName = "pu")



  



 private EntityManager em;



	

  



 @ Override



  



 public void remove (Car Auto) {



    



 em.remove (char);



  



 }





  



 @ Override



  



 @ Transactional (readOnly = true)



  



 öffentlicher Parkplatz Last (Integer id) {



    



 Rückkehr em.find (Car.class, id);



  



 }





  



 @ Override



  



 sparen öffentlichen Car (Car Auto) {



    



 em.persist (char);



    



 Rückkehr Auto;



  



 }





  



 @ Override



  



 Update öffentlichen Car (Car Auto) {



    



 em.merge return (char);



  



 }





  



 public void setEm (EntityManager em) {



    



 this.em = p;



  



 }





  



 getEm öffentlichen EntityManager () {



    



 return p;



  



 }







 }



und schließlich in "applicationContext.xml:





 <-! CAR DAO ->







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



Wie man sieht, um die DAO umzusetzen brauchen wir Nosta EntityManager, der direkt von uns "IoC injiziert durch den Einsatz von Annotations @ PersistenceContext.

Die Implementierungen der einzelnen Methoden sind trivial, einfach delegieren die Arbeit all'EntityManager. Wie für Transaktions-Management, hat sich entschieden, die @ Transactional-Annotation verwenden. Dies ermöglicht Frühjahr auf die Instanz von unserem DAO erstellen wird ein Proxy, deren Aufgabe es ist, öffnen und schließen Transaktionen vor dem Aufruf einer Methode und unmittelbar nach dem "Ausstieg aus dem Verfahren selbst tut ein Commit oder ein Rollback bei verwenden Fehler.
Beachten Sie, schließlich hat sich der Einsatz des @ Transactional nell'annotation ReadOnly für die Load-Methode, auf diese Weise einen Übergang in read-only erstellt.

Diese Transaktions-Management wird durch den Einsatz von AOP getan, damit es nur, um unsere applicazionContext.xml hinzu:






 <-! 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 Reiseführer
E-Learning
Linux (Kurs) Linux (Kurs)
Ein vollständiger Reiseführer von Open-Source-System. Ab 49 €.
PHP (Kurs) PHP (Kurs)
Vollständige natürlich für die Erstellung dynamischer Websites. Ab 49 €.
Ruby und Ruby on Rails (Kurs) Ruby und Ruby on Rails (Kurs)
Erstellen von Software-und Web-Anwendungen mit Ruby und RoR. Ab 39 €.
Sponsored Links