Peguei de outro forum: Porque eu odeio o hibernate.  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
fabio.patricio
GUJ Master

Membro desde: 04/01/2004 02:51:33
Mensagens: 1512
Localização: Porto Alegre - RS
Offline

LIPE wrote:Eu falei que ele não sabe fazer "select *" hehe


Pois é LIPE, mas a maioria dos desenvolvedores nao sabem, niguem se peocupa muito com isso.

Ps.: Sem pedras pessoal

Fabio Patricio
http://blog.wansoft.com.br

[WWW] [MSN] [ICQ]
vfpamp
Thread.start()
[Avatar]
Membro desde: 23/09/2003 08:01:11
Mensagens: 43
Offline

rodrigousp wrote:
Peraí !!! O "mapeamento + esquema do BD" tá caprichado demais...
Nunca consegui tal proeza!

Se você não quer salvar (ou atualizar) em cascata todas entidades penduradas... cascade=none (ou delete).
Acho que manter as chaves bem simples, também deve ajudar horrores.

Mas, precisaria ver o mapeamento para entender o problema.


Cascade está ativo só no detalhe do cara (uma tabelinha com 3 registros).

Mas, exato... o mapeamento e as classes do hibernate estão overpower, praticamente uma cópia do diagrama de classe da aplicação. Muita coisa interligada... e é por isso que da essas merdas aih.

Vitor Fernando Pamplona
http://vitorpamplona.com
http://twitter.com/vitorpamplona
[WWW] [MSN] [ICQ]
louds
Moderador
[Avatar]

Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline

LIPE wrote:Eu falei que ele não sabe fazer "select *" hehe


E quem disse que select * é bom? SQL de 20 linha é um problema bem menor que usar select *. Ainda mais para o hibernate, um software, que não tem um oraculo para adivinhar a nhaca que virá do banco.

Vitor, o hibernate não executa nenhum select para atualizar um objeto. Você primeiro procurou pelo objeto antes de atualizar, correto?

O ideal é trabalhar com objetos desconectados e optimistic locking nesse caso. Com Hibernate3 você pode usar update queries.

Eu acho que o problema é que você não entendeu como funciona ORM, a implicações disso e as configurações de caching da tua aplicação tão zuadas.


http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda
[ICQ]
Anonymous



hum.. vejamos...

Não, o Hibernate fez aquelas consultas sozinho no save.

Os objetos que compõem o registro que estou salvando estão desconectados sim, foram caregados em outras seções pelo Swing.

Esse select é para validar as dependências dos relacionamentos que existem no objeto que eu estou salvando.


Eu acho que o problema é que você não entendeu como funciona ORM, a implicações disso e as configurações de caching da tua aplicação tão zuadas.


Aí já não sei... eu vi, re-vi, re-li, debuguei o fonte o hib2 e nada...

A solução que eu fiz foi retirar as dependências dos relacionamentos eu tinha no objeto. Ou seja, dupliquei o mapeamento para uma outra classe.

louds
Moderador
[Avatar]

Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline

Anonymous wrote:
A solução que eu fiz foi retirar as dependências dos relacionamentos eu tinha no objeto. Ou seja, dupliquei o mapeamento para uma outra classe.



Já tive que fazer algo parecido, ter 2 classes, uma leve e outra pesada herdando da primeira.Fiz isso para evitar carregar um clob toda hora, uma vez que o Hibernate2 não suporta fetch groups. O mesmo pode ser feito para relacionamentos.

O mapeamento original tinha os relaciomanentos todos como casacade="all" pelo visto. Isso é uma coisa que eles não falam nos docs, mas qualquer opção de cascade diferente de "none" no caso de objetos detached custa muito em termos de performance. É um custo que não tem como escapar.

http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda
[ICQ]
Arcadex
JavaBaby
[Avatar]

Membro desde: 04/08/2004 15:20:37
Mensagens: 86
Localização: Vitória / Es
Offline

Cara, eu uso Hibernate a 6 meses.
Minha aplicação nunca gerou um SQL assim.

Acho bom vc revisar o motivo dessa doidera aí.
[WWW]
vfpamp
Thread.start()
[Avatar]
Membro desde: 23/09/2003 08:01:11
Mensagens: 43
Offline

Arcadex wrote:Cara, eu uso Hibernate a 6 meses.
Minha aplicação nunca gerou um SQL assim.

Acho bom vc revisar o motivo dessa doidera aí.


Eu uso ele a 2 anos na mesma aplicação

This message was edited 1 time. Last update was at 07/04/2005 23:49:09


Vitor Fernando Pamplona
http://vitorpamplona.com
http://twitter.com/vitorpamplona
[WWW] [MSN] [ICQ]
Rafael Steil
Administrador
[Avatar]

Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline

Arcadex wrote:Cara, eu uso Hibernate a 6 meses.
Minha aplicação nunca gerou um SQL assim.

Acho bom vc revisar o motivo dessa doidera aí.


Voce generalizou. O sistema dele com certeza eh totalmente diferente do seu.

Rafael

"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"

http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil
[Email] [WWW]
Arcadex
JavaBaby
[Avatar]

Membro desde: 04/08/2004 15:20:37
Mensagens: 86
Localização: Vitória / Es
Offline

vfpamp wrote:
Arcadex wrote:Cara, eu uso Hibernate a 6 meses.
Minha aplicação nunca gerou um SQL assim.

Acho bom vc revisar o motivo dessa doidera aí.


Eu uso ele a 2 anos na mesma aplicação


Com certeza, minha aplicação não passará a gerar SQL desse tipo qdo atingir a idade de 2 anos.

Nossa aplicação, com toda certeza é diferente. Só estou comentando p/ revisar os relacionamentos da classes e demais propriedades que estão explicadas no manual. Pode ser q o motivo seja esse (ou não)
Foi só uma sugestão.
[WWW]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team