【问题标题】:what is the difference between dynamic and static fetching in hibernatehibernate中的动态和静态获取有什么区别
【发布时间】:2018-11-24 10:12:04
【问题描述】:

我是一个新的休眠用户。我一直在阅读本网站提供的用户指南 http://docs.jboss.org/hibernate/orm/current/userguide/html_single/Hibernate_User_Guide.html#fetching 他们开始谈论静态和动态获取,而没有介绍这些词。什么是静态和动态抓取?

【问题讨论】:

    标签: hibernate dynamic static


    【解决方案1】:

    在 ORM(对象关系映射)中,获取是将相关数据加载到内存中的方式...

    假设您提供的链接示例 390,当您从持久层加载员工时,你们两个有关于员工部门的选项:

    1) 要么指示 ORM(休眠)在加载 Employee 后立即加载部门信息,要么

    2) 指示 ORM 仅在需要时才加载关联的部门;即,当您致电employee.getDepartment().getName()时;

    根据您的需要,您将在这两个选项中选择一个。为了告诉 ORM 你选择了什么选项,你使用静态抓取还是动态抓取...

    静态获取是通过注释(或 XML)完成的,它被认为是静态的,因为一旦你编写它,它就不能在运行时更改......(请注意,像 @ManyToOne 这样的关系注释默认会强制执行 Fetch EAGER 策略)

    动态获取,通过编程配置或运行时查询完成,允许您决定何时(如何)将相关数据加载到内存中......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-06
      • 2016-08-29
      • 2013-07-21
      • 2013-12-12
      • 2020-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多