Camada de persistência

:?:

alguem me ajude, porfavor… isso ja ta dando um nó na minha cabeça.

Estou começando sozinho um projeto bastante grande, estou com duvidas na camada de persistencia!!!
nao sei se uso OJB, JDO, ou crio eu mesmo a minha.

ah, o projeto é em web com STRUTS

se eu criar a minha mesmo, vai ser nada mais do que “insert…” direto :slight_smile: nada de ‘mapping’ … nao tenho tempo pra isso pq ja tenho 2 clientes esperando o sistema.

to pensando em usar JDO, procurei nos exemplos e nao vi como fazer certas coisas… tipo GROUP BY, funcoes de agregação (MAX(), SUM(), etc)

alguem tem alguma ideia?

minhas opinoes pessoais

:arrow: OJB
O OJB infelizmente esta uma zona. Ja era zona quando morava no SF, e agora no jakarta/db, eles estao mais perdidos ainda. Ele tem 3 apis: a deles mesmos que nao eh padrao nenhum (como o hibernate), a da ODMG, e o JDO. o JDO nao esta implementado ainda.

Eu nao recomendo usar OJB. Eles estao apssando de 0.99 para RCs, e ta aparecendo zilhares de incompatibildiades e bugs

:arrow: Hibernate
To usando e ta muito legal.
Tudo muito transparente para voce. E ele nao gera os bytecodes em runtime, e dizem que atualmente ele nem usa dynamic proxies. Ele eh bem limpo, porem nao eh um padrao.

:arrow: JDO (TJDO)
JDO eh uma especificacao, como servlets e ejb. E a Sun adora deixar coisas “opicionais”. Detesto isso. Servlets e JSP sao um sucesso porque nao tem isso de “opicional”.

Brinquei um pouco com o TJDO, mas achei terrivel ter de ficar gerando bytecode antes de rodar. O Hibernate nem faz isso, nem sei como ele faz e nao me interessa saber, eh transparente.

Quem me apresentou o TJDO foi o Daniel, talvez ele saiba te falar melhor.
Nao sei se isso de ter de gerar o bytecode eh do TJDO ou se o JDO especifica assim. Seria legal dar uma olhada.

:arrow: Prevayler
Quem conhece eh o CV.

Minha opiniao final: use o hibernate.

você conhece algum software para gerar os mappings do hibernate??

sei que o xdoclet faz muita coisa, mas nao usei.

existe ateh um middlegen, que faz o mapeamento graficamente

voce tambem pode usar ferramentas que vem com ele, para fazer o reverse engineering do seu bd

Bom, eu não sou especialista em TJDO nem em JDO. Na verdade, eu sou especialista em massas :smiley:
Sobre criar ou não sua própria camada de persistência, acho que você não deveria arriscar seu tempo nisso: é complexo demais.

Agora, sobre qual camada de persistência usar, se puder (ou seja, seguindo as recomendações do Carlos) use Prevayler, por sua simplicidade e velocidade.

Outro dia, qdo eu estiver melhor, eu falo mais sobre JDO.

Abraços

valeu galera!

mas acho que vo ficar com o hibernate, gostei mais…

muito obrigado pela ajuda

EntityBean CMP 2.0 com CMR, em Banco Relacional… Melhor camada de Persistência para aplicações J2EE…

Para a J2SE (Stand-Alone), pode-se usar o Prevayler com grande sucesso…

Para a J2SE (Client-Server), vai ter que morrer em implementação de JDBC…

Deus que nos livre! Pra isso tem Hibernate, JDO, Torque e tantas outras camadas de persistência non-EJB por aí :slight_smile:

[quote]EntityBean CMP 2.0 com CMR, em Banco Relacional… Melhor camada de Persistência para aplicações J2EE…

Para a J2SE (Stand-Alone), pode-se usar o Prevayler com grande sucesso…

Para a J2SE (Client-Server), vai ter que morrer em implementação de JDBC… (Oziel Neto)[/quote]

  • EJBs, só se for aplicável.
  • Prevayler é uma boa idéia;
  • JDBC puro? Só se você sentir um prazer muito grande em configurar datasources e escrever SQLs. Caso contrário, Hibernate ou JDO

Galera…

Não vamos esquecer o Legado de Oracle, Sybase, MSSQL, Informix, etc, existente no mercado…

[]'s

entao oziel
nesses casos ai, da pra voce usar Hibernate ou JDO, e eles fazem todo trabalho sujo pra voce, desde que voce informe a eles qual bean eh cada entidade relacional, e como eles se relacionam
eh bem bacana

Como o Paulo disse, Hibernate trabalha muito bem com os “legados” Oracle, DB2, SQLServer, … o JDO, nem se fala: é completamente independente de fonte de dados (RDBMS, OODBMS, XML, Flat Files…).
O que se tem que entender é que Java é muito mais do que APENAS J2EE.

Legal…

Obrigado…