Impedir q 2 usuários não acessem um registro ao mesmo tempo

No sistema que estou desenvolvendo temos uma tela para edição de roteiros. Nela precisamos garantir que apenas um usuário terá acesso àquele roteiro específico. Seria assim:

1 - se um usuário acessar um roteiro que ninguém está acessando, ele terá acesso;

2 - se um usuário acessar um roteiro que alguém está acessando, ele será avisado que o roteiro está bloqueado pelo usuário X.

3 - quando um usuário deixa de acessar o roteiro, o sistema deve deixar o roteiro disponível novamente.

PS: usamos Struts e Hibernate

Alguém já passou por uma situação parecida? Existe uma forma “consagrada” de resolver esse tipo de problema?

abraços pessoal!

Olá, amigo!

Eu já fiz algo parecido, dê uma olhada na documentação do hibernate:

Chapter 10. Transactions And Concurrency

Apesar de não ser muito boa, a documentação vai te ajudar.

Paz!

Isso mesmo… dê uma pesquisa pelo conceito de lock persistente no hibernate.