您的位置:首页 > 其它

Hibernate——事务

2015-11-22 15:10 302 查看
事务:要么同时完成,要么同时都不完成。

事务的特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)

脏读:读了另一个事务没有提交的数据

不可重复读:在同一个事务中,对同一个数据读两次的结果不同

幻读:一个事务在读的过程中,有另一个事务执行了插入或删除数据,影响了读的结果

数据库的事务隔离级别:

·read-uncommitted:读未提交的。会出现脏读、不可重复读、幻读

·read-committed:读已提交的。避免了脏读,但会出现不可重复读、幻读(一般选择)

·repeatable-read:可重复读。相当于对数据加了一把锁

·serial:序列化,一个一个排队来

悲观锁:

在读取数据时,数据库对数据加锁,使其他事物不能修改该数据

方法:

session.load(Account.class, 1, LockMode.UPGRADE);


乐观锁:

给数据加一个字段, 代表他的版本字段,一旦数据被更改,则该字段自动+1。在更新数据时,会比较新的数据和旧数据的版本,若一致,则可以修改;若不一致,则代表数据被修改过。

方法:

在类中加一个版本属性,但不要指定值。并在该属性的getXXX()方法上注解
@Version
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hibernate 事务