..
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" />
| |
Linux (Curs)
Ghid complet pentru open-source de sistem. Incepand de la 49 €. |
| |
PHP (Curs)
Cursul completa pentru crearea de site-uri Web dinamice. Incepand de la 49 €. |
| |
Ruby şi Ruby on Rails (Curs)
Crearea de aplicatii software si web cu Ruby şi RoR. Incepand de la 39 €. |