Duvida na modelagem - EJB CMP

9 respostas
D

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?!!?

9 Respostas

M

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

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

bem, ai eu acho q é só tu extends a tua classe do entity… ela vai ser um entity tb…

D

Acho q vou tentar fazer isso pra ver se rola… senao simplifico o meu sistema e faco sem heranca mesmo!

J

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:

public abstract class Usuario implements EntityBean{
...
public UsuarioVO getUsuario(){
UsuarioVO = new UsuarioVO();
vo.setID(getID()); //getID() método do CMP
...
return vo;
}
public void setUsuario(UsuarioVO vo){
setID(vo.getID()); //setID() método do CMP
...
}
//Métodos CMP
public abstract String getID();
public abstract void setID(String id);
}

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

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

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

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

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.

Abraços.

Criado 28 de outubro de 2004
Ultima resposta 1 de nov. de 2004
Respostas 9
Participantes 3