..
Refiriéndose al ejemplo del párrafo anterior, vemos cómo crear el DAO a la entidad de coches.
En primer lugar creaimo una interfaz con métodos basados en un DAO, a saber: cargar, guardar, actualizar y eliminar.
it.mrwebmaster.hibernate.dao paquete;
it.mrwebmaster.hibernate.Car importaciones;
{Public CarDao interfaz
carga de un parking público (número entero id);
salvar a un parking público (coche de coches);
actualización pública Car (coche de coches);
public void eliminar (coche de coches);
}
Creado pasar la interfaz en la creación de la aplicación:
it.mrwebmaster.hibernate.dao paquete;
it.mrwebmaster.hibernate.Car importaciones;
javax.persistence.EntityManager importaciones;
javax.persistence.PersistenceContext importaciones;
org.springframework.transaction.annotation.Transactional importaciones;
@ Transactional
CarDaoImpl {public class CarDao
@ PersistenceContext (unitName = "puede")
EntityManager em privado;
@ Override
public void eliminar (coche de coches) {
em.remove (char);
}
@ Override
@ Transactional (ReadOnly = true)
carga de un parking público (número entero id) {
volver em.find (Car.class, id);
}
@ Override
salvar a un parking público (coche de coches) {
em.persist (char);
devolución del coche;
}
@ Override
actualización pública Car (coche de coches) {
em.merge retorno (char);
}
public void SETEM (EntityManager em) {
this.em = em;
}
getEm pública EntityManager () {
retorno p;
}
}
y finalmente en 'applicationContext.xml:
<- COCHE DAO -> <bean id="carDaoImpl" class="it.mrwebmaster.hibernate.dao.CarDaoImpl" />
Como se puede observar para implementar la nost DAO necesitamos EntityManager, que se inyecta directamente de nosotros "a través del uso de la COI anotaciones @ PersistenceContext.
La implementación de cada método son triviales, simplemente delegar la all'EntityManager trabajo.
En cuanto a la gestión de transacciones, ha optado por utilizar la anotación @ Transactional.
Esto permite a la primavera para crear la instancia de nuestro DAO se utiliza un servidor proxy, cuyo trabajo consiste en abrir y cerrar la transacción antes de la llamada a un método y después de la salida desde el método en sí hacer una confirmación o un retroceso en el caso de error.
Tenga en cuenta, finalmente, el uso de la @ transaccional para el método de carga ReadOnly nell'annotation, al hacerlo, ha creado una transición de sólo lectura.
Esta gestión de transacciones se realiza mediante el uso de AOP, a fin de que sólo tiene que añadir a nuestra applicazionContext.xml:
<- Gestión de Operaciones -> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> propiedad> name="entityManagerFactory" ref="entityManagerFactory" /> </ Bean> <tx:annotation-driven transaction-manager="transactionManager" />
| |
Linux (Curso)
Guía completa de código abierto del sistema. A partir de 49 €. |
| |
PHP (Curso)
Ciclo completo para la creación de sitios Web dinámicos. A partir de 49 €. |
| |
Ruby y Ruby on Rails (Curso)
Crear aplicaciones de software y la Web con Ruby y RoR. A partir de 39 €. |