EJB 3 & JPA - Isto é uma boa prática?

1 resposta
warley

Olá a todos,

Estudando EJB e JPA e vi no livro o uso da anotação @Stateless na camada DAO/EAO como mostra no código abaixo:

@Stateless
public class BidEAOImpl implements BidEAO {

	@PersistenceContext(unitName = "actionBazaar")
	private EntityManager em;

	public BidEAOImpl() {
	}

	public Bid addBid(Item item, String bidderId, double bidPrice) {
		Bid bid = new Bid();
		...
		em.persist(bid);
		return bid;
	}

	public Bid cancelBid(Long bidId) {
		...
	}
}

Gostaria de saber se isto é uma boa prática. Eu sei que neste exemplo o container controla o objeto EntityManager, mas o uso da anotação do EJB nesta camada que eu achei estranho!
Alguêm usa assim?

Obrigado

1 Resposta

L

O propósito de camadas é de gerenciar melhor as dependências em seu sistema, só isso. Ninguém disse que se deve usar coisas distintas pra camada de persistência e de negócio.

Mesmo usando EJB para ambas as camadas, você ainda estará mantendo elas separadas como eram antes. E, com EJB3, é fácil fazer um EJB chamar um outro. No seu caso, é só ter um EJB de “negócio” chamar um outro EJB de “persistência”. Simples.

Criado 5 de novembro de 2008
Ultima resposta 5 de nov. de 2008
Respostas 1
Participantes 2