Edicao simultanea de um registro

Ola’

Sou novo na parte de acesso a banco de dados em Java. Vim do Delphi e nele, quando um usuario tentava alterar um registro que ja’ estava sendo alterado por outro usuario, uma exececao era disparada, informando que fulano de tal ja’ esta’ editando o registro.

Como posso fazer algo desse tipo usando JDBC? Aproveitando… o hibernate implementa uma solucao para isso?

Obrigado!

Que tal usar LOCK de registros? Veja se seu banco suporta isso.

Eu estou usando o PostgreSQL e, olhando a documentacao, vi um comando interessante: SELECT * FROM tabela FOR UPDATE. Isso trava os registros retornados ate’ q eu os atualize.

Se outro usuario tentar atualizar nao conseguira’. So’ que ele so’ vai saber que o registro esta’ sendo editado ao salvar. Vou olhar mais a respeito.

Mas… tem certeza que vou ter que fazer isso na mao mesmo? =)

Falae!
O postgresql resolve o problema de acesso concorrente automaticamente.
Diferentemente de outros bancos, o PG nao usa lock. Ele usa um esquema de multi versões. Qdo alguem vai ler algum dado do banco ele lê um dado de uma “versão mais antiga”. Se alguem for gravar neste dado ele grava numa versão mais nova.
Assim, nao rola “lock”. A leitura nunca bloqueia a gravacao e vice-versa.

  teh maiis ae!