Para o Hibernate saber se o saveOrUpdate deve fazer um insert ou um update, ele faz um select na tabela e verifica se o registro já existe, caso exista ele faz um update do contrário um insert. Com isso temos uma ida adicional ao banco de dados.
Para evitar o select adicional você pode utilizar um mapeamento <Version> ou <TimeStamp> e uma propriedade na entidade. O Hibernate gerencia os valores internamente para controle de concorrência otimista, um dos efeitos desse gerenciamento é que um valor de data e hora vazia ou uma versão 0 ou null, indica que é uma instância nova e a mesma será automaticamente inserida, sem que um select seja efetuado.
Ou utilize os métodos save e update separadamente.
segunda-feira, 21 de junho de 2010
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário