Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java与hibernate_Java - Fatal编程技术网

java与hibernate

java与hibernate,java,Java,我有一个从数据库中获取日期的代码,我从数据库中获取年份,代码如下: Date expiryDate=dataMgr.getDate(); int validity=2; expiryDate.setYear(expiryDate.getYear() + validity); // some piece of code tx.commit(); 我正在使用hibernate从数据库中获取数据。一切都很好,但问题是在提交之后…我开始日期(dataMgr.getDate())的

我有一个从数据库中获取日期的代码,我从数据库中获取年份,代码如下:

 Date expiryDate=dataMgr.getDate(); 
 int validity=2;    
 expiryDate.setYear(expiryDate.getYear() + validity); 
 // some piece of code
 tx.commit();
我正在使用hibernate从数据库中获取数据。一切都很好,但问题是在提交之后…我开始日期(dataMgr.getDate())的DB年也发生了变化,我不知道为什么??有人能把我弄清楚吗

例如,形成上述代码
expiryDate:4/21/2012
(来自数据库)。提交后,其在DB中更改为
4/21/2014
,不应发生这种情况?? 我没有在任何地方使用过相应的对象,也没有在任何地方更新过对象


在单个
事务中,

对象处于
持久状态
。而且,
expireydate
dateMgr.getDate
都引用同一个对象

获取对象的克隆,而不是获取引用

Date expiryDate=dataMgr.getDate().clone();
我不确定语法,请检查一下