[quote=gibaholms]Ae pessoal!!
Estou com o seguinte problema… venho iniciando no EJB 3 esses dias, e me deparei com o dilema do VO.[/quote]
Dilema do VO? Acabe com o dilema acabando com o VO!
[quote=gibaholms]Gostaria que algum expert me esclarecesse algumas duvidas. Por exemplo:
Não existem mais entitie-beans, portanto eles não possuem mais interface home / remota. Logo, como instanciarei eles no cliente dado que o cliente não conhece as API da JPA ?[/quote]
O que? Você está misturando alhos com bugalhos. O que tem a ver entity beans com interface home? O que tem a ver instanciação no cliente com JPA?
Recapitulando EJB 3.0 e JPA:
Quando você quer se referir a um EJB, você declara a interface EJB como atributo de classe anotado com @EJB (essa classe precisa ser Servlet, ManagedBean ou um bean do Spring). Caso você não tenha uma classe gerenciada por container, vai ter que buscar o EJB via JNDI, a diferença é que lá não vai estar a home, onde você deve dar create pra te devolver um stub, o próprio stub vai estar lá.
Quando um objeto anotado com JPA estiver no cliente, a lib de JPA deve estar lá, não tem jeito infelizmente.
Simples, não pense em termos de VO, pense em quais métodos o objeto possui, quais os relacionamentos com outros objetos. Se for o caso, encapsule chamadas a métodos EJB dentro desses objetos.
[quote=gibaholms]Como que o struts vai fazer a injeção de dados do meu formulário web sem VO ?
“Copiar” os atributos da entity no próprio facade, e dentro do facade instanciar a entity replicando os atributos ?
Fazer o struts instanciar o session-facade ?[/quote]
Não conheço Struts, graças a Deus. Siga um conselho que me deram: livre-se do Struts.
Bom, vou responder a sua pergunta, supondo a existência de um façade similar ao Faces ou ao Struts 2: o objeto devolvido pelo EJB precisa de alguns getters e setters, não tem jeito. Então, passe eles pra view.