Hibernate ou Stored Procedures

Pessoal, gostaria de iniciar uma discussão aqui.
Trabalho com Java há algum tempo e já utilizei dois tipos de implementação para a camada de persistência: JDBC direto e Hibernate. Achei o Hibernate muito interessante. Apesar de um pouco complexo a princípio, depois que você pega as manhas ele aumenta bastante a produtividade.
Comecei a trabalhar em uma empresa onde o pessoal é fã de Stored Procedures e não querem ouvir falar de Hibernate. Porém, notei que na Comunidade Java o pessoal em geral não é muito fã de Stored Procedures.
Alguém poderia me ajudar a entender as vantagens e as desvantagens do uso de Stored Procedures em relação ao Hibernate?

Valeu

1º e talvez o mais importante: Com stored procedure vc perde toda a independência da sua plataforma. Se vc tem um banco SQL Server com suas SP’s, e vc vai colocar em um cliente a mesma app e ele exige que seja em Postgre por exemplo, vc vai ter que reescrever todas as suas SP’s (Já pensou se vc tem zilhões de SP’s? O tempo que vc vai perder reescrevendo-as?).

Tem mais um monte de motivos, mas acho que esse é o principal (ou um dos).

Depende…

Qual a probabilidade de vc trocar de banco de dados ?

Qual a complexidade das consultas, inclusões e afins com seus dados ?

Do que adianta vc ter um “baita” banco de dados, como o Oracle, por exemplo, e utiliza-lo apenas para persistencia ? Ignorando tds os demais recursos ?

Estou trabalhando em um sistema que basicamente faz consulta (simples) e CRUD… o hibernete tem me ajudado bastante no quesito produtividade…

tente analisar seu projeto, e pense em programação agil, desenvolva o que vc precisa e não o que vc acha que um dia, num futuro proximo ou não tao proximo vc va precisar !!

boa sorte !!

[quote=pm]Depende…

Qual a probabilidade de vc trocar de banco de dados ?

Qual a complexidade das consultas, inclusões e afins com seus dados ?

Do que adianta vc ter um “baita” banco de dados, como o Oracle, por exemplo, e utiliza-lo apenas para persistencia ? Ignorando tds os demais recursos ?

Estou trabalhando em um sistema que basicamente faz consulta (simples) e CRUD… o hibernete tem me ajudado bastante no quesito produtividade…

tente analisar seu projeto, e pense em programação agil, desenvolva o que vc precisa e não o que vc acha que um dia, num futuro proximo ou não tao proximo vc va precisar !!

boa sorte !!

[/quote]

A portabilidade realmente deve ser considerada em alguns projetos, mas para os projetos que desenvolvemos isso não é um problema, pois nossos projetos em geral são para suporte a sistemas de BI os quais são totalmente dependente da base de dados. Ou seja: se mudar a base de dados, não é só a nossa aplicação que vai ferrar. Na verdade, a mudança de base para esse tipo de projeto é extramente rara, e acredito que possa ser desconsiderada.

Sendo assim, a portabilidade entre diferentes bases de dados realmente não é uma preocupação para mim. Sendo assim, uma abordagem de Stored Procedures me seria mais vantajosa?

Portabilidade seria uma vantagem do Hibernate !

Agora, sistema de BI, normalmente fazem consultas complexas no banco dados e talves vc teria mais trabalho e perderia mta performance usando um framework de persistencia como o Hibernete.

Eu acho que neste caso, SP seria mais recomendado!

Bom estou em um projeto grande também utilizando stored procedure e acho até isso ajuda muito, ja consegui ser persistente sem precisar do hibernate, criei um framework próprio de persistência que posso lhe afirmar funciona em muitos bancos do mercado.
No meu caso uso cluster então eu muito melhor o uso de stored procedure.

Espero ter ajudado.

Flwww