Jpa 2.0

5 respostas
C

Pessoal do guj preciso de alguma idéia para tratar uma questão no meu sistema, que é a seguinte:

Tenho uma tabela no banco de dados que vou chamar de Tabela1 aqui, essa Tabela1 quando for inserir algo nela pelo persist do meu JPA 2.0 tenho que bloquear para ninguém mais poder alterar ou inserir algo nela porque meu sistema tem 1000 usuários que pode fazer a mesma coisa então só vou liberar a Tabela1 para leitura para os outros 999 usuários até eu terminar de inserir na Tabela1 com o persist JPA 2.0.

Minha pergunta é: como faço isso usando o JPA 2.0? de uma forma que meu sistema não sofra tanto com essa tratativa…

5 Respostas

M

Cara, para mim a melhor forma de se trabalhar nesse caso é marcar um campo como version, assim sempre que houver uma alteração o sistema verificará se o proximo usuário a tentar o update no banco está com a ultima versão, evitando problemas de sobrescrita de dados por concorrencia

F

Eu faço a mesma recomendação do marcelux, utilize o @version para garantir o controle de versões do seu registro. Já que possui um número consideravel de usuários é uma prática mais tranquila um controle de versão por registro e não por tabela. Imagine seu usuário tenho problemas para gravar itens novos em uma tabela porque outro usuário está alterando um registro. Acho que isso te daria um dor de cabeça no futuro. hehehe.

Espero ter ajudado.
Boa sorte ae.

C

so version resolve bem esse caso, estava vendo entityManager.lock também que acha???

M

Ai é com você, tabelas com muito fluxo de alteração podem ter problemas de performance pq ficam em lock

C

valeu pelas dicas… teria algum link para me aprofundar no assunto sobre @version

Criado 19 de abril de 2010
Ultima resposta 19 de abr. de 2010
Respostas 5
Participantes 3