Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/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
hibernate是否加载所有数据库记录?怎么控制它?_Hibernate_Persistence_Persist - Fatal编程技术网

hibernate是否加载所有数据库记录?怎么控制它?

hibernate是否加载所有数据库记录?怎么控制它?,hibernate,persistence,persist,Hibernate,Persistence,Persist,我想知道hibernate是如何工作的。。。假设我有三个实体类:A、B和C 我已经知道以下事实: 我不会对B对象执行任何select语句 我将(通过调用persist())在B中插入数十万新行 我将选择并更新对象数百次 我不会对C对象执行任何操作 数据库中以前保存了数十万个C对象 在另一个会话中,我将重复完全相同的操作 结果,数据库将变得越来越大,我注意到对B对象调用persist()的速度会变慢 我的问题是: hibernate是否加载数据库中的所有对象?所有A、B和C对象 如何查看hib

我想知道hibernate是如何工作的。。。假设我有三个实体类:A、B和C

我已经知道以下事实:

  • 我不会对B对象执行任何select语句
  • 我将(通过调用persist())在B中插入数十万新行
  • 我将选择并更新对象数百次
  • 我不会对C对象执行任何操作
  • 数据库中以前保存了数十万个C对象
  • 在另一个会话中,我将重复完全相同的操作
结果,数据库将变得越来越大,我注意到对B对象调用persist()的速度会变慢

我的问题是:

  • hibernate是否加载数据库中的所有对象?所有A、B和C对象
  • 如何查看hibernate从数据库加载对象的操作
  • 我可以控制装载操作吗?事实上,我不希望加载C对象,也不希望同时加载B对象
  • 如何查看和控制数据库中作为实体对象加载的记录
  • 如果对B的id的唯一性进行验证操作 对象,我可以在日志文件中查看此验证吗
  • 我是否可以取消激活验证操作以加速B对象的persist()操作?事实上,我可以管理代码中id的唯一性,我不希望hibernate验证它
  • 1) 不,只有必要的

    2) 您可以配置hibernate日志以显示执行的SQL和DML语句

    3) 仅加载选定的对象。此外,您还可以指定渴望或懒惰进行关联

    4) 你为什么要这样做?这是一个休眠任务

    5) 如果一个ID不是唯一的,它就不是一个ID。句点


    6) Hibernate只发送到DB,DB执行大部分检查。如果您想“调整”Hibernate以提高性能,请不要使用Hibernate进行该操作。

    谢谢您,关于第4项,现在无需这样做,因为您向我保证只加载选定的对象。我所有的联想都是懒惰的。为什么随着数据库的增大,调用persist()会变得越来越慢?在日志文件中,我只看到select、update、insert语句,是否有任何方法可以看到hibernate何时执行隐式自动刷新()和提交()操作?这听起来是一个DB问题,获取一个调优工具并记录其操作的性能。