..


Links Patrocinados

Data Access - Criando DAO e gerenciamento de transações

Referindo-se o exemplo do parágrafo anterior, vemos como criar o DAO para a entidade de carro.

Primeiro de tudo creaimo uma interface com métodos baseados em um DAO, ou seja: carregar, salvar, atualização e exclusão.






 pacote it.mrwebmaster.hibernate.dao;









 it.mrwebmaster.hibernate.Car importações;









 {Public interface CarDao





  



 carga de estacionamento público (Integer id);



	

  



 salvar Car público (carro carro);



	

  



 atualização de estacionamento público (carro carro);



	

  



 public void remove (carro carro);







 }



Criado passar interface na criação de implementação:





 pacote it.mrwebmaster.hibernate.dao;









 it.mrwebmaster.hibernate.Car importações;









 javax.persistence.EntityManager importações;







 javax.persistence.PersistenceContext importações;









 org.springframework.transaction.annotation.Transactional importações;









 @ Transactional







 CarDaoImpl classe implementa {public CarDao





  



 @ PersistenceContext (unitName = "can")



  



 private EntityManager em;



	

  



 @ Override



  



 public void remove (carro carro) {



    



 em.remove (char);



  



 }





  



 @ Override



  



 @ Transactional (readOnly = true)



  



 carga de estacionamento público (Integer id) {



    



 retorno em.find (Car.class, id);



  



 }





  



 @ Override



  



 salvar Car público (carro carro) {



    



 em.persist (char);



    



 devolução do veículo;



  



 }





  



 @ Override



  



 atualização de estacionamento público (carro carro) {



    



 em.merge retorno (char);



  



 }





  



 public void SETEM (EntityManager em) {



    



 this.em = em;



  



 }





  



 getEm pública EntityManager () {



    



 p retorno;



  



 }







 }



e finalmente em "applicationContext.xml:





 <-! CAR DAO ->







 <bean id="carDaoImpl" class="it.mrwebmaster.hibernate.dao.CarDaoImpl" />



Como pode ser visto para implementar o DAO nost precisamos EntityManager, que é injetado diretamente de nós "através do uso de IoC anotações @ PersistenceContext.

As implementações de cada método são triviais, simplesmente delegar a all'EntityManager trabalho. Como para gerenciamento de transações, optou por utilizar a anotação @ Transactional. Isto permite que o Spring para criar a instância do nosso DAO vai usar um proxy, cuja função é abrir e fechar a transação antes da chamada para um método e imediatamente após a saída 'do método em si fazendo um commit ou um rollback em caso de erro.
Note, finalmente, o uso do @ Transactional para o método de carga ReadOnly nell'annotation, ao fazê-lo criou uma transição somente leitura.

Este gerenciamento de transações é feito através do uso de AOP, para ativá-lo basta adicionar ao nosso applicazionContext.xml:






 <! - Gerenciamento de Transações ->







 <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">



  



 <property name="entityManagerFactory" ref="entityManagerFactory" />







 <Bean />







 transaction-manager="transactionManager" <tx:annotation-driven />



Primavera Java Guia
E-Learning
Linux (Curso) Linux (Curso)
Guia completo para open-source do sistema. A partir de 49 €.
PHP (Curso) PHP (Curso)
Curso completo para a criação de sites dinâmicos. A partir de 49 €.
Ruby e Ruby on Rails (Curso) Ruby e Ruby on Rails (Curso)
Criar aplicações de software e Web com Ruby e RoR. A partir de 39 €.
Links Patrocinados