digo, qdo alguem pega um entity para alterar, vcs est�o usando o esquema de timestamp para pegar a vers�o daquele objeto e fazer um lock otimista, gerando uma exce��o de neg�cio para o �ltimo que tentar alterar o objeto (agora inconsistente) ?
qdo a discuss�o sobre VO/DTO, acho que deve haver os dois, DTO's para mapear os dados necess�rios a uma tela (nossa conex�o de rede � cara e com delay, via sat�lite, e devemos ter todos os dados transferidos de uma vez) e VO's para encapsular os dados para altera��o/inser��o.
Michael Nascimento Santos wrote:
Paulo, Realmente alguns autores acham que os TOs devem ser read-only. No entanto, o catalogo de patterns novamente mostra que isso eh recomendavel mas que pode ser interessante poder alterar os TOs.Acho que nao fui muito claro na minha colocacao. O uso de TOs complexos geralmente serve para que o cliente localize a entidade que quer manipular. Um exemplo simples de um sistema web: Numa console administrativa de um site de vendas, o usuario pode querer visualizar diversos pedidos com cruzamentos de informacoes para localizar aquele que precisa editar. Depois disso, normalmente ele vai selecionar um pedido que serah retornado com mais informacoes complexas, mas geralmente ele soh vai alterar um aspecto do pedido (por exemplo, validar o estoque, ou mudar o status para atendido, ou ainda cancelar etc.), que geralmente vai estar ou na entidade principal ou em um tipo de entidade relacionada (item do pedido, por exemplo). Se voce pensar bem, dificilmente o usuario ou um sistema cliente vai alterar muitos dados _relacionados_ de uma vez. Ele pode ateh alterar varios dados de varias entidades, mas geralmente sao do mesmo tipo. Dificilmente isso ocorre, mesmo em EAI. O uso de TOs complexos para atualizacoes eh raramente necessario. Espero que tenha ficado claro agora. Caso discorde, mande seus comentarios. A discussao estah comecando a ficar bem interessante. []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 ----- Original Message ----- From: "Paulo Andre Antonialli" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Tuesday, November 05, 2002 10:41 AM Subject: RES: [enterprise-list] classes DAO/Value Object Ok Michael. Realmente acho que deveria ter adicionado a palavra "recomend�vel", s� n�o o fiz porque lembro-me de haver lido n�o sei onde que o cliente obt�m Transfer Objects com o �NICO prop�sito de usar estes objetos de forma read-only. Bem, quanto � complexidade de se descobrir quais foram os dados alterados pelo cliente, tenho uma pondera��o a fazer: J� participei de algumas discuss�es sobre este assunto e, at� onde minha ignor�ncia vai, eu n�o vejo problema nenhum nesta quest�o, pelo menos utilizando um VO. Me corrijam se eu estiver errado mas, ao inv�s de bolar toda uma l�gica de "descobrimento dos dados alterados na camada cliente", por que n�o simplesmente setar logo TODOS os dados num VO e passar este VO pra camada de neg�cio? � claro que estar�amos fazendo alguns sets desnecess�rios (aqueles atributos que n�o foram alterados na camada cliente) mas, como todos estes dados estariam encapsulados num VO, isto n�o acarretaria em overhead de rede por exemplo e me pouparia uma l�gica respeit�vel. Any comments? []�s! -----Mensagem original----- De: Michael Nascimento Santos [mailto:mister__m@;hotmail.com] Enviada em: 5 de novembro de 2002 10:20 Para: [EMAIL PROTECTED] Assunto: Re: [enterprise-list] classes DAO/Value Object Paulo, Eh muito bom ter mais alguem participando nesta discussao. Seu comentario foi bastante relevante. No entanto, nao necessariamente os TOs gerados pelo Transfer Object Assembler sao read-only; isto eh recomendavel devido a complexidade de saber exatamente o que o usuario alterou, mas nao eh obrigatorio. Geralmente, quando o usuario faz uma atualizacao, ele estah mexendo em somente _uma_ entidade. O que acontece geralmente eh que voce primeiro retorna TOs complexos para que o usuario possa localizar a entidade exata que quer modificar e depois edita somente aquela entidade especifica, que pode ser representada por um TO simples. Caso nao tenha ficado claro, nao hesite em perguntar. []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 ----- Original Message ----- From: "Paulo Andre Antonialli" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Tuesday, November 05, 2002 10:06 AM Subject: RES: [enterprise-list] classes DAO/Value Object Mas acho que cabe ressaltar a import�ncia do contexto da sua aplica��o pois, at� onde sei, o Transfer Object Assembler � read-only, ou seja, � um pacote de dados (coletado de v�rias entities, etc) que v�o ser expostos ao cliente. At� a� tudo bem, o problema � que, se por exemplo, eu quiser alterar estes dados e atualizar no banco, o Transfer Object Assembler n�o conseguir� realizar esta tarefa. Acho que neste caso, o mais apropriado seria usar um VO (value object) onde, caso eu queira atualizar dados numa tabela, eu posso construir este vo (no cliente) e mandar para minha camada de neg�cio. []�s! -----Mensagem original----- De: Michael Santos [mailto:mister__m@;hotmail.com] Enviada em: 4 de novembro de 2002 23:24 Para: [EMAIL PROTECTED] Assunto: Re: [enterprise-list] classes DAO/Value Object Transfer Object Assembler eh um design pattern para a construcao de um Transfer Object complexo, ou seja, cujos dados vem de diversas fontes distintas. Mais informacoes em http://java.sun.com/blueprints/corej2eepatterns/Patterns/TransferObjectAssem bler.html -- 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 ----- Original Message ----- From: "Fernando Rubbo" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Monday, November 04, 2002 4:09 PM Subject: RES: [enterprise-list] classes DAO/Value Object Michael Eu esqueci de pedir... o que eh Transfer Object Assembler??? Valeu Fernando --------------------------------------------------------------------- Para cancelar a subscri��o, envie mensagem para: [EMAIL PROTECTED] Para comandos adicionais, envie mensagem para: [EMAIL PROTECTED] --------------------------------------------------------------------- Para cancelar a subscri��o, envie mensagem para: [EMAIL PROTECTED] Para comandos adicionais, envie mensagem para: [EMAIL PROTECTED] --------------------------------------------------------------------- Para cancelar a subscri��o, envie mensagem para: [EMAIL PROTECTED] Para comandos adicionais, envie mensagem para: [EMAIL PROTECTED] --------------------------------------------------------------------- Para cancelar a subscri��o, envie mensagem para: [EMAIL PROTECTED] Para comandos adicionais, envie mensagem para: [EMAIL PROTECTED] --------------------------------------------------------------------- Para cancelar a subscri��o, envie mensagem para: [EMAIL PROTECTED] Para comandos adicionais, envie mensagem para: [EMAIL PROTECTED]
-- xxxxxxxxxxxxxxxxxxxxxxxxxxxx | Emerson Cargnin | | Analista de Sistemas Sr. | | Tel : (051) 3358-4959 | | SICREDI Servi�os | | Porto Alegre - Brasil | |xxxxxxxxxxxxxxxxxxxxxxxxxx| --------------------------------------------------------------------- Para cancelar a subscri��o, envie mensagem para: [EMAIL PROTECTED] Para comandos adicionais, envie mensagem para: [EMAIL PROTECTED]
