..
Powołując się na przykład w poprzednim ustępie, widzimy, jak stworzyć DAO do samochodów podmiotu.
Przede wszystkim creaimo interfejs z metod opartych na DAO, a mianowicie: load, save, aktualizacji i usunięcia.
pakiet it.mrwebmaster.hibernate.dao;
import it.mrwebmaster.hibernate.Car;
{Public interface CarDao
publicznych obciążenia samochodu (Integer id);
zapisz publicznej samochodów (Car);
publicznej aktualizacji samochodów (Car);
public void remove (Car);
}
Utworzono przejść interfejs do tworzenia realizacji:
pakiet it.mrwebmaster.hibernate.dao;
import it.mrwebmaster.hibernate.Car;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
org.springframework.transaction.annotation.Transactional importu;
@ Transakcyjna
CarDaoImpl {public klasa implementuje CarDao
@ PersistenceContext (unitName = "może")
prywatnych EntityManager em;
@ Override
public void remove (Car) {
em.remove (char);
}
@ Override
@ Transakcyjna (readonly = true)
publicznych obciążenia samochodu (Integer id) {
powrót em.find (Car.class, id);
}
@ Override
zapisz publicznej samochodów (Car) {
em.persist (char);
zwrotu pojazdu;
}
@ Override
publicznej aktualizacji samochodów (Car) {
powrót em.merge (char);
}
public void setEm (EntityManager em) {
this.em = em;
}
getEm publiczną EntityManager () {
return p;
}
}
i wreszcie w "applicationContext.xml:
<- CAR DAO -> <bean id="carDaoImpl" class="it.mrwebmaster.hibernate.dao.CarDaoImpl" />
Jak widać do realizacji nost DAO musimy EntityManager, który wstrzykuje się bezpośrednio od nas "za pomocą adnotacji @ PersistenceContext IoC.
Implementacje tych metod są trywialne, po prostu delegować all'EntityManager pracy.
Jeśli chodzi o zarządzanie transakcjami, zdecydował się na stosowanie @ transakcyjna adnotacji.
To pozwala wiosną, aby utworzyć instancję naszej DAO będzie korzystać z serwera proxy, którego zadaniem jest otworzyć i zamknąć transakcję przed wywołaniem metody i zaraz po "wyjściu z samej metody robi commit lub rollback w przypadku błędu.
Uwaga, wreszcie wykorzystanie @ transakcyjna dla ReadOnly nell'annotation metody obciążenia, w ten sposób stworzył przejście tylko do odczytu.
To zarządzania transakcjami odbywa się za pomocą AOP, aby umożliwić mu po prostu dodać do naszego applicazionContext.xml:
<- Zarządzanie transakcjami -> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory" /> </ Bean> transaction-manager="transactionManager" <tx:annotation-driven />
| |
Linux (Kurs)
Kompletny przewodnik do systemu open-source. Od 49 €. |
| |
PHP (Kurs)
Pełny kurs tworzenia dynamicznych stron internetowych. Od 49 €. |
| |
Ruby i Ruby on Rails (Kurs)
Tworzenie oprogramowania i aplikacji webowych w języku Ruby RoR. Od 39 €. |