Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Bean > Service > DAO

Prezados, Não seguindo como no vídeo, como ficaria, um exemplo, para que eu possa delegar do BEAN para o SERVICE para o DAO?

Lembrando do Curso de EJB! Pois temos Transações (tx) e é preciso deixar o nosso DAO livre de "sujeira", deixando isso para o SERVICE.

Seguindo a aula, o instrutor, delega do BEAN diretamente para o DAO.

No meu caso... Eu possuo uma Classe Pessoa (Domain, Model). Possuo CadastroPessoaBean, e queria ao invés de delegar diretamente para o meu PessoaDAO, delegar para o meu PessoaService e assim delegar para o meu PessoaDAO

Por favor, me desejem força! E que a força esteja com vocês!

3 respostas

Acho que poderia ser assim:

@EJB
public class PessoaService {
  public void salva(Pessoa pessoa){
     dao.salva(pessoa);
  }
}

Acho que poderia ser assim... Eu acho meio volta demais, mas é o que uma parte do mercado faz. Eu colocaria um @Transactional em cima do método do managed bean e seria feliz. Só usaria o service se realmente tivesse uma lógica diferente associada aí.

Olá, Alberto. Eu não falei, mas estou justamente na parte de CDI (curso) e vi no seu perfil CDI :D kk

Ainda não cheguei a ver sobre @Transactional. Poderia falar um pouco mais?

Sobre o meu caso... Então, eu poderia fazer:

public class CadastroPessoaBean() {

    private Pessoa pessoa = new Pessoa();
    private CadastroPessoaService service = new CadastroPessoaService(); //delegar para o meu serviço

    //getters e setter de pessoa;

    public void salvar() {
        this.service.salvar(pessoa);
    }

}

public class CadastroPessoaService {

    @Inject
    PessoaDAO dao;  //delegar para o meu DAO

    /**
    *Aqui deixo o meu DAO livre da Responsabilidade de             
    *abrir e/ou fechar uma transação
    */

    public void salvar(Pessoa pessoa) throws SQLExeption {
        try {
            this.dao.salvar(pessoa);
        } catch (...) {
        ...
        }
    }    

}

?

Grato

solução!

Olá, Alberto. Com o andamento das aulas de CDI, acho que consegui entender e como fazer tudo funcionar. Principalmente na questão de Gerente de Transação. Melhorou minha vida kk.

Obrigado, pela força! Grato.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software