14
ORM JPA Spring Framework Diego Armando Gómez Mosquera. [email protected] 2017

Spring ORM JPA

Embed Size (px)

Citation preview

Page 1: Spring ORM JPA

ORMJPASpringFrameworkDiegoArmandoGómezMosquera.

[email protected]

Page 2: Spring ORM JPA

Agenda

• ArquitecturadeSpring• Hibernate• SpringORM• SpringTransactionmanagement

Page 3: Spring ORM JPA

ArquitecturadeSpring

Page 4: Spring ORM JPA

QueesSpringORM• Soporte proporcionado por Spring para integrarsecon una gran variedad de Mapeadores objetorelacionales (ORM)– JPA– Hiberante– iBATIS– TopLink– ApacheOJB– JDO

Page 5: Spring ORM JPA

SpringORM

• SpringintegradoconunORMcomoJPAproporcionalassiguientescaracterísticas.– AdministracióndeentityManager– Administraciónderecursos(entityManagerFactory)– Administracióndetransaccionesintegradas.– AdministracióndeDataSource.– Envolverexcepciones

Page 6: Spring ORM JPA

SpringORM

• APIsBásicasJPA– org.springframework.orm.jpa– org.springframework.orm.jpa.persistenceunit– org.springframework.orm.jpa.support– org.springframework.orm.jpa.vendor

Page 7: Spring ORM JPA

SpringORM<?xmlversion="1.0"encoding="UTF-8"?><beans>

<beanid="entityManagerFactory"class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean"><propertyname="persistenceUnitName"value="demoBancoJPA"/>

</bean>

<beanid="transactionManager"class="org.springframework.orm.jpa.JpaTransactionManager"><propertyname="entityManagerFactory"ref="entityManagerFactory"/>

</bean>

<tx:annotation-driventransaction-manager="transactionManager"/></beans>

Page 8: Spring ORM JPA

SpringTransactionmanagement

• Cuentaconunsoprteextensoparamanejodetransacciones– ProgramaticaconJTA– ProgramaticaconTransactionTemplate– DeclarativaconTransactionAdvice– Declarativacon@TransactionAnnotation

Page 9: Spring ORM JPA

SpringTransactionmanagement

• Soporteparadiferentescomportamientos– REQUIRED– REQUIRES_NEW– SUPPORTS– NOT_SUPPORTS–MANDATORY– NEVER– NESTED

Page 10: Spring ORM JPA

SpringTransactionmanagement

• Nivelesdeaislamientosoportados– DEFAULT– READ_UNCOMMITTED– READ_COMMITTED– REPEATABLE_READ– SERIALIZABLE

Page 11: Spring ORM JPA

DAO@Repository@Scope("singleton")public class ClientesDAO implements IClientesDAO {

@PersistenceContextprivate EntityManager entityManager;

@Overridepublic void grabar(Clientes clientes) {

entityManager.persist(clientes);}

@Overridepublic void modificar(Clientes clientes) {

entityManager.merge(clientes);}

@Overridepublic void borrar(Clientes clientes) {

entityManager.remove(clientes);}

@Overridepublic Clientes consultarPorId(long cliId) {

return entityManager.find(Clientes.class, cliId);}

@Overridepublic List<Clientes> consultarTodos() {

String jpql="SELECT cli FROM Clientes cli";return entityManager.createQuery(jpql).getResultList();

}

}

Page 12: Spring ORM JPA

Laboratorio

Page 13: Spring ORM JPA

Construccióndeaplicación

• Tecnologías:• HibernateJPA• SpringORM• DAO• SpringTransactionconanotacione

Page 14: Spring ORM JPA