Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.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_Hibernate_Jpa - Fatal编程技术网

监视Java Hibernate数据检索

监视Java Hibernate数据检索,java,hibernate,jpa,Java,Hibernate,Jpa,比如说我有一个像JPA一样的 SELECT x FROM Person 现在,我想在Hibernate从数据库加载数据时监视它的进度,以便向用户显示进度条。这可能吗?我知道我可以显示不确定的进度条,但是显示确定的进度条怎么样 谢谢。AFAIK这是不可能的,因为您无法获取数据库的状态查询已加载的行数等,因此您必须等待此操作完成 然后Hibernate将根据结果创建实体,尽管您可能会在这里拦截,但我怀疑Hibernate是否提供了一些有用的挂钩 因此,您可能只能知道Hibernate何时完成从数据

比如说我有一个像JPA一样的

SELECT x FROM Person
现在,我想在Hibernate从数据库加载数据时监视它的进度,以便向用户显示进度条。这可能吗?我知道我可以显示不确定的进度条,但是显示确定的进度条怎么样


谢谢。

AFAIK这是不可能的,因为您无法获取数据库的状态查询已加载的行数等,因此您必须等待此操作完成

然后Hibernate将根据结果创建实体,尽管您可能会在这里拦截,但我怀疑Hibernate是否提供了一些有用的挂钩

因此,您可能只能知道Hibernate何时完成从数据库加载结果,以及何时创建/更新了所有必要的实体


或者,您可以尝试分批加载实体,即首先获取结果的数量,然后加载单个块,例如0-99、100-199等。。。。因为您知道结果的数量,所以可以计算块的数量,在块之间可以更新进度条。但是,请注意,这会降低性能,特别是在查询非常复杂的情况下。

AFAIK这实际上是不可能的,因为您无法获取数据库查询的状态、已加载的行数等,因此您必须等待此操作完成

然后Hibernate将根据结果创建实体,尽管您可能会在这里拦截,但我怀疑Hibernate是否提供了一些有用的挂钩

因此,您可能只能知道Hibernate何时完成从数据库加载结果,以及何时创建/更新了所有必要的实体

或者,您可以尝试分批加载实体,即首先获取结果的数量,然后加载单个块,例如0-99、100-199等。。。。因为您知道结果的数量,所以可以计算块的数量,在块之间可以更新进度条。但是,请注意,这会降低性能,特别是在查询非常复杂的情况下