Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.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会话.update()与更新查询?_Java_Hibernate - Fatal编程技术网

Java Hibernate会话.update()与更新查询?

Java Hibernate会话.update()与更新查询?,java,hibernate,Java,Hibernate,Hi如果要更新行的某些特定列,那么我应该在hibernate中使用更新查询,还是只使用hibernate的session.update()方法。刚知道 @org.hibernate.annotations.Entity( dynamicUpdate = true 注释如果设置,我可以更新特定列。我以前没有用过这个,所以我只想知道是否有使用这个的规范。只是需要你的帮助来做出决定。哪种方法更好 关闭动态会话更新后,Hibernate将缓存所有实体的所有可能查询。所以Hiberna

Hi如果要更新行的某些特定列,那么我应该在hibernate中使用更新查询,还是只使用hibernate的
session.update()
方法。刚知道

@org.hibernate.annotations.Entity(
        dynamicUpdate = true 

注释如果设置,我可以更新特定列。我以前没有用过这个,所以我只想知道是否有使用这个的规范。只是需要你的帮助来做出决定。哪种方法更好

关闭动态会话更新后,Hibernate将缓存所有实体的所有可能查询。所以Hibernate不必在每次更新实体时都生成SQL

当它打开时,Hibernate总是在请求时生成SQL查询,而不是缓存它。因此,对于您的数据库来说,它更轻了,但是对于Hibernate来说,它变得更重了

什么时候应该使用Hibernate动态更新?如果您有一个包含大量列的大型表,那么缓存所有实体的所有查询将比平常花费更多的内存。因此,您可以启用动态更新以提高性能。另外,如果您正在调试,动态更新将为您提供更可读的查询,因为只有修改过的列才会出现在update语句中

您应该使用更新查询还是会话更新?更新查询的可读性较低,并且更难维护(例如,如果字段名已更改,则必须更改所有查询,而会话更新不会受到影响)