----- Original Message -----
From: "Maykel Tres" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Subject: Re: [enterprise-list] ORDER BY no Entity


> Ola Michael,
>
> Na resposta abaixo voc� tocou num ponto que estou extremamente preocupado.
A
> utiliza��o de DAO para acesso a dados visto que eu utilizo CMP para a
> persist�ncia dos meus objetos.
> Eu estou preocupado porque tenho que tomar a decis�o de utilizar ou n�o
EJB
> QL.
> Gostaria de saber a sua opini�o a respeito do assunto.

Bem, esta decisao vai depender muito do escopo do seu projeto e de questoes
de portabilidade.

Acredito que, no seu caso, existam duas sugestoes plausiveis:

- Utilizar BMP com o uso de algum framework/ferramenta de mapeamento O/R
(OJB [http://jakarta.apache.org/ojb/index.html], JDO, TopLink etc.)
- Combinar o uso de CMP com DAOs para situacoes onde EJB-QL nao for
suficiente.

> Achei a id�ia de utilizar DAO muito boa, mas surge uma d�vida cruel. Eu
devo
> fazer consultas bem elaboradas(grandes) ou utilizo de v�rias pesquisas
> menores e junto todos os objetos em um session bean para organizar e
> classificar?

Voce tem que comparar suas opcoes na pratica para obter uma resposta a sua
pergunta:

- O uso de queries grandes, com joins, nested queries etc. pode realmente
oferecer melhor performance _se elas forem bem escritas_. Contudo, a
facilidade de manutencao vai para o espaco e fica mais dificil escrever
codigo SQL portavel...
- Fazer a logica do join nos sessions beans pode parecer mais elegante,
portavel e de melhor manutencao, mas pode ser _bem mais lento_ e se tornar
bastante ilegivel se voce nao tiver cuidado.

Recomendo que voce faca um proof-of-concept; escreva codigo para somente um
ou dois use-cases da sua aplicacao usando as duas estrategias, faca testes
de performance, avalie a legibilidade, facilidade de desenvolvimento,
portabilidade e outros aspectos que considera importantes e faca sua opcao.

> Essa pergunta serve no caso de EJB QL. E tamb�m tem a quest�o da troca de
> banco de dados. Em EJB QL eu n�o tenho essa preocupa��o.

Voce pode encapsular a criacao dos seus DAOs usando Abstract Factory e
acessando-os pela interface (ou classe abstrata, dependendo do seu caso),
trocando as classes de implementacao sem quebrar o resto do seu codigo fonte
visto que o processo de instanciar os objetos ficarah encapsulado. De uma
pesquisada na Internet sobre isso, talvez buscando por DAOFactory.

> Agrade�o a colabora��o.

De nada, soh peco que voce mande as questoes para a enterprise-list direto,
nao respondo as questoes individualmente (ae soh cobrando por hora ;-))

[]s
Michael Nascimento Santos
Sun Certified Programmer for the Java 2 Platform
Sun Certified Programmer for the Java 2 Platform 1.4
Moderador SouJava - www.soujava.org.br

---------------------------------------------------------------------
Para cancelar a subscri��o, envie mensagem para: 
[EMAIL PROTECTED]
Para comandos adicionais, envie mensagem para: [EMAIL PROTECTED]

Responder a