Hibernate乐观锁,能自动检测多个事务对同一条数据进行的操作,并根据先胜原则,提交第一个事务,其他的事务提交时则抛出org.hibernate.StaleObjectStateException异常。
要实现Hibenate乐观锁,我们首先要在Entity类里增加一个版本控制字段,字段名随意,比如就叫version,对应hibernate类型只能为long,integer,short,timestamp,calendar,也就是只能为数字或timestamp类型。然后在字段上面加个@Version注释,如:
@Version
private Long version;[color=red]数据更新保存时注意:[/color]
页面提交数据,后台更新时,如果提交了ID字段,但是没有提交version字段,那么,后台默认为该数据还是一条新数据,所以不做更新操作,做插入操作。
解决方法有2种(根据群里讨论的结果):
1、提交ID字段时,同时提交version字段;
2、只提交ID字段,后台根据ID先get得到一个entity,然后set进其他的值,最后再保存。
388



被折叠的 条评论
为什么被折叠?



