Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.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 为什么逐出后更新会使对象变脏?_Java_Hibernate - Fatal编程技术网

Java 为什么逐出后更新会使对象变脏?

Java 为什么逐出后更新会使对象变脏?,java,hibernate,Java,Hibernate,我在应用程序中使用Hibernate,出现以下情况: 从数据库中查询对象。编辑并更新子项(仅编辑子项) 在对象中,我有一列使用@version注释保存版本。 提交会话后,版本需要更新每次更改。 但是它没有更新,因为对象没有变脏 我发现如果我这样做: session.evict(entity); session.update(entity); 由于工作原因,物体变脏,版本增加 我尝试更改session.update(实体)到会话。合并(实体) 但是它不起作用(这个版本不起作用) 谁能解释一

我在应用程序中使用Hibernate,出现以下情况:

从数据库中查询对象。编辑并更新子项(仅编辑子项)

在对象中,我有一列使用@version注释保存版本。 提交会话后,版本需要更新每次更改。 但是它没有更新,因为对象没有变脏

我发现如果我这样做:

 session.evict(entity); 
 session.update(entity);
由于工作原因,物体变脏,版本增加

我尝试更改
session.update(实体)
会话。合并(实体)

但是它不起作用(这个版本不起作用)

谁能解释一下为什么

或者给我另一种方法来更新对象的版本,以防子对象发生更改