2012-04-12 75 views
-2

我有一個代碼,從數據庫獲取日期從我去年花了如下代碼:用java休眠

Date expiryDate=dataMgr.getDate(); 
int validity=2;  
expiryDate.setYear(expiryDate.getYear() + validity); 
// some piece of code 
tx.commit(); 

我使用休眠從數據庫中獲取。一切工作正常,但問題是在提交後....從我拿了日期(dataMgr.getDate())的DB年也改變了我不知道爲什麼?有人可以清除我嗎?

例如,形成上述代碼expiryDate:4/21/2012(來自數據庫)。在提交後,它變成了DB中的4/21/2014,這不應該發生? 我沒有使用那個相應的對象任何地方或更新任何地方???

幫我出

+0

修復格式請 – 2012-04-12 05:26:13

+0

您是否使用相同的對象? – Ketan 2012-04-12 05:30:31

回答

1

對象在Persistent state在一個transaction。此外,expiryDatedateMgr.getDate都指的是同一個對象。

非但沒有參考的,獲得對象

Date expiryDate=dataMgr.getDate().clone(); 

的克隆我不知道有關語法,請檢查。

+0

非常感謝Zohaib它與克隆工作正常:) :) – 2012-04-17 09:59:16

+0

@vijayakumar請標記接受的答案,如果它幫助你。 – Zohaib 2012-04-17 11:33:26