hibernate 乐观锁

hibernate 乐观锁

乐观锁采用的原理就是在表里边加version版本控制,

<versionname=“version”
column=“VERSION”
type=“integer”
/>

例子:

创建两个session:

Session session1=SessionFactory.openSession();

Session session2=SessionFactory.openSession()

对同一个数据进行操作:

Entity entity1=new Entity();

Entity entity2=new Entity();

entity1=session1.load(Entity.class,id);

entity1.setName(“name1”);

entity1.setName(“name1”);
Transaction tran1 = session1.beginTransaction();
session1.close();

entity2.setName(“name2”);
Transaction tran2= session2.beginTransaction();
session2.close();

运行到后边的tran2提交时会报异常:org.hibernate.StaleObjectStateException异常。
之所以报这个异常,就是因为我们在Entity里边增加了version,第一个事务提交之后version=version+1=2,而第二个事务提交时,version=1<2,就会 报这个异常,数据过时

U2FsdGVkX1+XTVardIlqVeZS7LqK6vy8uZ1InRCXi5OHtEKWSi8lsDXm9KKruUT6
9QgxbdTr8o2Av/SH0xlQjTt3jsj55I245FsvI6JOPdjSIdxwI7bApXfVQ0c9cEhR
G3aLs2jqFAYCev2lF1JxxbZzXEq76ZCfQT9wm86ZOTaOBnPTJgw/SfksiqJIiWm/
TSiliKUYf/BhqJpkAGYCQOPK4CrOYA9w+E9BVletcRklkPMNPD7hzPgJIW7BrM3N
UDKxbpGZjjFvai5PavmpBxS8gtpTi6gkp8WHp46COEHCAk7seeZK7rARsK3qMPU5
nug6T7zVIASBPYeK0hLG0jsX9n/GgUtvK0G7gY/uMqvvpMXfGMYRw0ykgAJTQgCv
X8EvGnkQr96wfxwE0e0H0geROmyfPxW6xhiDlj/PT0zEXGta3tdYZqkDh6gFRWsE
/b3jst9neUw50v*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