Bom, na hora de modelar o meu sistema de distribuidor de gasolina, eu posso interpretar cada CMP como um VO, ou o VO esta dentro de um CMP ??
Ta meio confuso neh?!?!
Eh q assim, eu tenho a entidade usuario, com seus atributos e metodos. Ele eh um EJB CMP, ou eu vou ter um EJB CMP que tem, em um dos seu atributos um VO Usuario?!!?
nunca usei entity bean… mas eu creio q ele vai representar a tua tabela Usuario, logo, tu vai ter um entity bean usuario… eu acho… :roll: :oops:
D
darkseidPJ
Eh, parece q eh isso mesmo matheus… Dai no Entity Bean Usuario vou ter os atributos, nome, numero, data nasc, etc…
Agora a duvida eh: Como fazer heranca de Entity Beans?!!? Tipo, vou ter o usuaio normal e o admin por exemplo
M
matheusPJ
bem, ai eu acho q é só tu extends a tua classe do entity… ela vai ser um entity tb…
D
darkseidPJ
Acho q vou tentar fazer isso pra ver se rola… senao simplifico o meu sistema e faco sem heranca mesmo!
J
JaelPJ
Tudo bom!
Na verdade no teu entity você não terá um VO como atributo mas você precisará de métodos get e set para manipular o teu VO.
Exemplo:
publicabstractclassUsuarioimplementsEntityBean{...publicUsuarioVOgetUsuario(){UsuarioVO=newUsuarioVO();vo.setID(getID());//getID() método do CMP...returnvo;}publicvoidsetUsuario(UsuarioVOvo){setID(vo.getID());//setID() método do CMP...}//Métodos CMPpublicabstractStringgetID();publicabstractvoidsetID(Stringid);}
Quanto a modelagem, você poderia utilizar uma classe usuário com um atributo role. Com isso você pode dinamicamente modificar a role de um usuário (através de um arquivo XML por exemplo) sem a necessidade de mudar o código ou herdar uma nova classe.
Espero ter ajudado.
Abraços.
D
darkseidPJ
Vlw Jael… eu tava pensando em fazer algo parecido, mas pensei em colocar o VO usuario como um atributo da classe, o q c acha dessa ideia?!
J
JaelPJ
Não há necessidade de você ter um VO como atributo no entity bean, pois o VO você só irá utilizar para o transporte dos dados (não vejo outra utilização). Caso tivesse, estaria supondo que o VO faça parte da classe Usuário, que não é o caso (estaria implicitamente duplicando os atributos da classe). Os entity beans refletem apenas os atributos da sua tabela (no caso de bancos relacionais).
Abraços.
D
darkseidPJ
Valeu Jael, acho q entendi… eu crio o entity bean com os atributos da tabela, e crio tbm um VO, com praticamente os mesmos atributos para levar, por exemplo, os dados de um entity bean, para um formulário por exemplo naum eh?!!
J
JaelPJ
Isso mesmo. A vantagem do VO é que você reduz chamadas remotas encapsulando todos os atributos em um objeto. Fica bem mais fácil de manipular no cliente.