EJB 3 + JPA + Camada DAO : Dúvida conceitual

Olá a todos.

Pessoal, eu estou desenvolvendo um sistema utizando dois projeto: webmodule (jsf + richfaces) e businessmodule (EJB3 + JPA).

No meu projeto quando eu criei as classes da camada DAO e fui usar a anotação @PersistenceContext não funcionou. Aí eu percebi que somente funciona se eu transformar a minha clase DAO em um Bean de negócio, colocando a anotação @Stateless.

Neste caso eu achei conceitualmente estranho, pois eu queria criar uma camada BO (Business Object), dela chamar a classe DAO e na classe DAO usar os recursos do JPA.

Gostara de saber como isto está sendo feito. Alguém tem alguma sugestão?

Obrigado.

amigo a anotacao @PersistenceUnit soh pode ser usado em componentes gerenciados pelo servidor…

vc tera q recuperar seu EntityManager de forma programatica, procure por EntityManagerFactory.

o pessoal que trabalha com ddd deve ter solucoes elegantes pra tal situaçao…

abrassss

Gente eu vi um exemplo na internet de como usar EJB + Camada DAO e fiquei com o cabelo arrepiado de tanto medo!

http://www.linhadecodigo.com.br/Artigo.aspx?id=1734

É isto mesmo? É assim que usa EJB + DAO?

Desta forma se eu tiver 100 objetos DAO e para cada DAO eu tiver uma camada de negócio (BO), no final eu terei 200 EJBs publicados no meu servidor.
E haja memória para isto tudo Lombarde.

Que coisa de loko! Tem alguma coisa errada…

Algum filho de Deus pode me dar uma luz :idea: ?

Abraço.

amigo andei pesquisando sobre o assunto também, procure se informar sobre EAO (etity access object) assim da pra fazer um lookup, evitando colocar inumeros ejbs adicionais na memoria

abrasss

De uma olhada aqui.

https://www.hibernate.org/328.html

Discutido neste tópico de dois anos atrás (sic) aqui.

http://www.guj.com.br/posts/list/61216.java

[]'s