当前位置: 首页 > 知识库问答 >
问题:

理解冬眠。最大深度和冬眠。默认的批量取数大小

韦星文
2023-03-14

Hibernate文档提供了一些Hibernate配置属性。其中,,

hibernate.max_fetch_depth

为单端关联(一对一、多对一)的外部联接获取树设置最大“深度”。0禁用默认的外部联接获取。e、 g.建议值介于0和3之间

冬眠默认的批量取数大小

为Hibernate批量获取关联设置默认大小。e、 g.建议值4、8、16

我刚开始冬眠,有人能帮我理解这个例子吗。

提前谢谢。

共有1个答案

岳玉书
2023-03-14

max_fetch_depth:想象一个人和一个地址实体。每个人住在一个地址(非常简单的系统),但许多人可能住在同一个地址。在对象模型中,一个人可能有地址属性。这将被映射成一个多个(正如医生所说)。现在,当从数据库中提取一个人时,hibernate会遇到这个属性。在数据库中,它是一列,带有地址表的外键。要获取关联的对象,可以使用此表的联接。生成的数据将用于填充一个Address对象,该对象将在person的Address属性上设置。从这个意义上说,Hibernate在获取对象时遍历对象图。现在,如果地址有一个不动产城市呢?这也将是多对一的,并将导致通过相同的逻辑进行连接。如果这个城市有一个不动产国家呢?同样的事情。进行多次联接会对性能造成不利影响。在某个时候,最好进行单独的选择,从缓存中获取数据或插入代理。此配置属性确定hibernate在获取数据时通过联接遍历的关联数。

default_batch_fetch_size:这是一个非常低级的属性,用于确定Hibernate在查询集合关联时将请求JDBC驱动程序获取/加载多少行。如果要查询一个国家的所有城市(上一个示例),那么通过JDBC连接批量加载数据,将数据作为对象传递到内存中的过程将更加简化。与执行查询所需的环相比,应用程序处理数据所需的环通常是微不足道的。将配置属性保留为默认值通常是正确的。

 类似资料:
  • 另一种方法是使用Crieteria关联,但关联只能与和一起工作! 请在这里帮帮我。

  • 配置类的应用程序侦听器时出现错误 这实际上是我的错误 ** 严重:配置类org的应用程序侦听器时出错。springframework。网状物上下文ContextLoaderListener java。lang.NoClassDefFoundError:javax/servlet/ServletContextListener **在爪哇。lang.ClassLoader。java上的findBoot

  • 问题内容: 这些查询翻译器之间有什么区别(对于Hibernate用户而言,我的意思是不同)。互联网上的一些博客说基于ANTLR的翻译器更快。但是我认为,如果其中一个明显更好,那么Hibernate开发人员将删除另一个。那么..有什么区别?为什么我们都拥有它们?在什么情况下我应该选择第一还是第二?在什么情况下我不应该选择其中一位翻译? 问题答案: 这是 内部休眠配置 ; 它将在升级到版本3时实现 。

  • 我有一个应用程序,它使用hibernate使用注释创建初始数据库。 有人这样做过吗,如果有请告诉我怎么做。或者至少是另一种选择。是否所有的ORM更新都必须用sql脚本手动创建?

  • 问题内容: 他们幸福地结婚了吗? 我正在使用最新版本的hibernate(4)和1.3版的joda-time hibernate支持,我也相信这是当前的最新版本。 使用注释时,一切似乎都正常(按预期方式创建了日期列): 一起使用这些版本是否存在任何已知问题? Update Well证明已创建列,但无法填充任何数据: 处理程序处理失败; 嵌套异常是java.lang.AbstractMethodEr