2012-04-12 94 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