2012-03-07 82 views
1

我有兩個模塊項目第一提交勝最後提交勝在不同的模塊。一個會暴露給用戶而其他不暴露。另一個是批處理模塊。兩個模塊使用同一組模型類。休眠:使

暴露給用戶的模塊需要使用拳頭提交生效的策略,這樣,當一個條目被同時修改的StaleObjectStateException會被拋出,我們可以處理它。而在批處理模塊中,它不應該引發任何異常,只是最後一次提交會覆蓋前一個。

但隨着兩個模塊使用相同的模型類,模型類都冬眠了版本控制功能。因此,首次提交勝利策略始終處於啓用狀態。

有沒有我可以配置不同的策略,這兩個模塊的方式。

非常感謝。

+0

您是否嘗試過以下答案?我沒有看到任何接受的答案或評論。如果他們有幫助,接受/ upvote答案。 – ManuPK 2012-03-22 12:40:59

回答

0

你需要控制它的StaleObjectStateException的catch塊。

try{ 
    ..............//Your code... 
    session.saveOrUpdate(bean); 

} catch (StaleObjectStateException e){ 

     if(forceUpdate){ 
      long version = getLatestVersionFromDB(bean); 
      bean.setVersion(version) 
      session.saveOrUpdate(bean); 
     } 
}