Duvida com versionamento no hibernate

1 resposta
L
Pessoal tenho uma classe Produto que coloquei uma coluna de versao para que seja checada a versao quando alguem tentar salvar o objeto ta funcionando td certinho na tela de cadastro de produtos ou seja se alguem for alterar este produto e outra pessoa tiver alterado antes ele nao deixa, porem eu gostaria que qdo o usuario fosse fazer um pedido e se alguem alterasse um dos produtos que ele esta incluindo no pedido e salvasse antes do pedido,o sistema nao deixasse ele incluir o pedido tbm,como posso fazer isso?? segue o mapeamento:
@Entity
@Table(name = "produto")
@SequenceGenerator(name = "geraCodProduto", sequenceName = "geraCodProduto")
@org.hibernate.annotations.Entity(optimisticLock = org.hibernate.annotations.OptimisticLockType.VERSION)
public class Produto implements Serializable {
	@Version
	@Column(name = "versao")
	private int versao;

Alguem pode ajudar??

1 Resposta

MC_Coelho

Tinha lido a pergunta ontem a noite, mas não tenho experiência com o versionamento do hibernate, entretanto com experiência em outras pedras que a persistência nos coloca tenho um palpite.

Talvez se o saveOrUpdate do pedido e itens ficarem dentro da mesma transação o pedido também não seria incluído devido a uma StaleObjectStateException e seria realizado o rollback, note que nunca fiz isso, talvez o que eu esteja falando seja uma baita bobagem.

Não sei se já testastes isso, mas penso que o caminho está no uso de transações.

Abraço

Criado 19 de setembro de 2008
Ultima resposta 20 de set. de 2008
Respostas 1
Participantes 2