Não tem muito segredo, e dá pra fazer sem usar frameworks ORM. Vc cria na table uma coluna numérica pra salvar o número da versão daquele registro. Quando for dar update naquela row com os dados que o usuário editou, faz “UPDATE table SET xxx WHERE versao = N”, e aí o update só vai acontecer se a versão for a versão que o usuário tá visualizando.
Supondo que dois usuários estejam editando o registro naquele momento, o primeiro usuário que editar aquela row vai ter os dados salvos. Se vc ver que o UPDATE não afetou row alguma, vc exibe uma mensagem pro usuário que alguém já editou o registro, e confirma se ele quer ver os dados atualizados ou sobreescrever.
Sobre dar lock no banco: é pura dor de cabeça.
Sobre usar ou não o hibernate, se vc usar os assistentes do Netbeans (se vc está usando outro editor, pode usar ele de qualquer forma só pra gerar seus Entities), vc cria em 5 minutos todas as classes que precisa. Aí claro, vai faltar o resto do código, e seu conhecimento sobre JPA/Hibernate.
glaubersilverio:
Obrigado pelas recomendações. Estou pesquisando sobre JNLP. Não conhecia e parece ser a solução para o meu problema de deixar a aplicação em um servidor e distribuí-la.
Com relação ao lock, achei bastante coisa, porém, para uso com hibernate e não estou utilizando nenhum framework de persistência e já tenho bastante coisa pronta!!! Alguém teria um exemplo de lock otimista sem utilizar hibernate? Será que valeria a pena eu passar um tempo aprendendo Hibernate e migrar tudo que eu tenho pronto? O que acham sobre isso? Também li sobre lock no banco de dados, é recomendável?
Att.
Gláuber