Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvidas sobre sincronismo

Olá, estou criando uma aplicação multiusuário com JSF e notei que poderei enfrentar alguns problemas, como quando 2 usuários efetuarem uma compra e o estoque for decrementado. Há a possibilidade de ambos carregarem o objeto ao mesmo tempo, eu gostaria de sincronizar esse acesso, qual é a melhor abordagem para fazer isso? Eu pensei em fazer com threads

Ilustração:

public class Venda {
    private String produto;
    private int quantidade;
}

public class Estoque {

    private int quantidadeDisponivel;

    public void realizaVenda(Venda venda){
        this.quantidadeDisponivel -= venda.getQuantidade();    
}
Produto X = 10

Usuário 1 carrega o produto X.
Usuário 2 carrega o produto X.
Usuário 1 faz uma compra de 3 produto. X = 7
Usuário 2 faz uma compra de 1 produto. X = 9
Usuário 1 e 2 finalizam a sessão respectivamente.
Produto X = 9.
=(
1 resposta
solução!

Se vc tiver um banco de dados e sua aplicação usar um hibernate da vida, procura por uma annotation que chama @Version.. O Hibernate vai controlar para vc a versão do objeto e não vai deixar o último aí ser salvo... Vai gerar uma exception e vc lida com ela do jeito que quiser...