Olá Isaque,
Já que você esta trabalhando com o Seam gostaria de lhe fazer uma pergunta quanto a arquitetura de um projeto usando Seam:
Usando a arquitetura EJB tinhamos: (me corriga se estiver errado por favor)
- Entity
- – Entidade da JPA
- Ejb Facade
- – Stateless ou Statefull EJB para controlar o EntityManager basicamente
- Backing Bean
- – Registrado no faces-config, injetamos o Ejb Facade e algumas vezes os métodos do Backing Bean refletem alguns do Ejb Facade
Entity – Entidade da JPA Ejb Facade – Stateless ou Statefull EJB para controlar o EntityManager basicamente Backing Bean – Registrado no faces-config, injetamos o Ejb Facade e algumas vezes os métodos do Backing Bean refletem alguns do Ejb Facade
Nos exemplos que encotrei usando o Seam temos:
(aqui é que está a dúvida, se a arquitetura está correta)
- Entity Component
- – JPA mais Seam Component (em poucos casos só JPA)
- Ejb Seam Component
- – Esse aqui é mágico, nele controlamos o EM, e publicamos diretamente ao JSF, pode ser Statefull ou Stateles, geralmente Statefull com Scopo Conversação (as “bijeções” ajuda de MAIS, sem falar no escopo conversação)
Entity Component – JPA mais Seam Component (em poucos casos só JPA) Ejb Seam Component – Esse aqui é mágico, nele controlamos o EM, e publicamos diretamente ao JSF, pode ser Statefull ou Stateles, geralmente Statefull com Scopo Conversação (as “bijeções” ajuda de MAIS, sem falar no escopo conversação)
Na arquitetura acima, o Seam Component fica com o papel do Backing Bean e do Ejb Facade, ele faz bem isso, devido às injeções e com o auxilio do Entity Component fica mais facil ainda.
Mas a questão é a seguinte:
Isso está correto?
É a forma certa de se trabalhar com a arquitetura e o framework Seam?
Deve mesmo ser extinguido o Ejb Facade?