..
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" />
| |
Linux (Course)
Komplett guide til open-source system. Starter fra 49 €. |
| |
PHP (Course)
Full kurs for å lage dynamiske nettsider. Starter fra 49 €. |
| |
Ruby og Ruby On Rails (Course)
Opprette programvare og web applikasjoner med Ruby og RoR. Starter fra 39 €. |