..
Med hänvisning till exemplet i föregående punkt ser vi hur du skapar DAO till företaget Car.
Först av allt creaimo ett gränssnitt med metoder som bygger på en DAO, nämligen: ladda, spara, uppdatera och radering.
it.mrwebmaster.hibernate.dao paket;
it.mrwebmaster.hibernate.Car import;
{Public interface CarDao
offentliga bil belastning (heltal id);
spara offentliga Bil (Bil);
uppdatera allmänheten Bil (Bil);
public void bort (Bil);
}
Skapad gränssnitt passerar i skapandet av genomförandet:
it.mrwebmaster.hibernate.dao paket;
it.mrwebmaster.hibernate.Car import;
javax.persistence.EntityManager import;
javax.persistence.PersistenceContext import;
org.springframework.transaction.annotation.Transactional import;
@ Transactional
CarDaoImpl {public klass implementerar CarDao
@ PersistenceContext (unitName = "kan")
privata EntityManager em;
@ Åsidosätt
public void bort (Bil) {
em.remove (char);
}
@ Åsidosätt
@ Transactional (skrivskyddad = true)
offentliga bil belastning (Integer id) {
retur em.find (Car.class, id);
}
@ Åsidosätt
spara offentliga Bil (Bil) {
em.persist (char);
tillbaka bilen;
}
@ Åsidosätt
uppdatera allmänheten Bil (Bil) {
em.merge avkastning (char);
}
public void setEm (EntityManager em) {
this.em = em;
}
getEm offentliga EntityManager () {
avkastning p;
}
}
och slutligen i "applicationContext.xml:
<-! BIL DAO -> <bean id="carDaoImpl" class="it.mrwebmaster.hibernate.dao.CarDaoImpl" />
Som man kan se att genomföra DAO Nøst vi behöver EntityManager, som injiceras direkt från oss "med hjälp av IoC anteckningar @ PersistenceContext.
De implementationer av varje metod är triviala, helt enkelt delegera arbetet all'EntityManager.
Som för transaktionshantering, har valt att använda @ Transactional anteckningen.
Detta gör att våren för att skapa instans av vårt DAO kommer att använda en proxy, vars uppgift är att öppna och stänga affären innan anropet till en metod och direkt efter "exit från själva metoden att göra ett åtagande eller en återställning i händelse av fel.
Notera, slutligen, har användningen av @ Transactional för ReadOnly nell'annotation last metod på så sätt skapat en övergång skrivskyddad.
Denna transaktion hantering sker med hjälp av AOP, så att den bara lägga till vår 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" />
| |
Linux (kurs)
Komplett av öppen källkod-system. Från 49 €. |
| |
PHP (kurs)
Fullständig kurs för att skapa dynamiska webbplatser. Från 49 €. |
| |
Ruby och Ruby on Rails (kurs)
Skapa program och webbapplikationer med Ruby och RoR. Från 39 €. |