hibernate版本控制 樂觀鎖悲觀鎖
阿新 • • 發佈:2019-02-13
//1: 資料庫表 people 加上一列 version int
//2: 實體類 people 屬性 ( private int version;)
//3: 在hibernate 對映檔案class 之間 在一個表示副 id 之後加上 <version cloumn="version">
//4:測試
//省yue
Session session1=cf.openSession();
Session session2=sf.openSession();
System.out.println(session1==session2); //返回false 他們是兩個執行緒裡的session不是同一個
Transision ts1=session1.beginTranstion();
Transition ts2=session2.beginTranstion();
People peo1=session1.get(People.class,1);
People peo2=session2.get(People.class,2);
System.out.println(peo1==peo2); //false 他們是兩個sission 下的物件
peo1.setPassword("1111");
ts1.commit();
peo2.setpassword("2222");
ts2.commit();
//結果
資料庫密碼改成了 111111
22222修改失敗,並且控制檯異常
//2: 實體類 people 屬性 ( private int version;)
//3: 在hibernate 對映檔案class 之間 在一個表示副 id 之後加上 <version cloumn="version">
//4:測試
//省yue
Session session1=cf.openSession();
Session session2=sf.openSession();
System.out.println(session1==session2); //返回false 他們是兩個執行緒裡的session不是同一個
Transision ts1=session1.beginTranstion();
Transition ts2=session2.beginTranstion();
People peo1=session1.get(People.class,1);
People peo2=session2.get(People.class,2);
System.out.println(peo1==peo2); //false 他們是兩個sission 下的物件
peo1.setPassword("1111");
ts1.commit();
peo2.setpassword("2222");
ts2.commit();
//結果
資料庫密碼改成了 111111
22222修改失敗,並且控制檯異常