..
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 />
| |
Linux (Curso)
Guia completo para open-source do sistema. A partir de 49 €. |
| |
PHP (Curso)
Curso completo para a criação de sites dinâmicos. A partir de 49 €. |
| |
Ruby e Ruby on Rails (Curso)
Criar aplicações de software e Web com Ruby e RoR. A partir de 39 €. |