grails - 什么是渴望获取和懒惰获取?

标签 grails groovy

我是 Grails 的新手,我遇到了 Eager 和lazy fetching 这个名字。他们究竟是什么?如果答案解释了何时应该使用这些技术中的每一种,那将会非常好?

提前致谢。

最佳答案

假设您有一个带有 Person 表和地址表的简单数据库模式。如果你从数据库中加载一个人,你有两个选择:

  • 急切地加载地址,以便从数据库中返回人员和地址,可能在一次往返中。无论是否需要或使用它,它都会立即加载。
  • 延迟加载地址,这意味着在需要之前不要加载它。

  • 这只是一个例子,还有很多其他例子,拿这个例子来说,用c#写的,但应该很明显:
    private ExpensiveObjectToCreate lazy;
    private ExpensiveObjectToCreate eager = new ExpensiveObjectToCreate();
    
    public ExpensiveObjectToCreate Lazy
    {
        get
        {
            if(lazy == null)
            {
                 lazy = new ExpensiveObjectToCreate();
            }
            return lazy;
        }
    }
    public ExpensiveObjectToCreate Eager
    {
        get
        {
            return eager;
        }
    }
    

    关于grails - 什么是渴望获取和懒惰获取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7214454/

    相关文章:

    grails - Grails 3邮件:必须先发出STARTTLS命令

    grails - Spring Security 插件认证失败问题

    grails - Groovy,Grails;每周为变量添加+1

    groovy - 按版本计数的 Artifactory 清理脚本

    groovy groupby 多个字段

    groovy - Groovy 中 2 个列表的内容求和

    grails - Groovy Closure通用返回/参数?

    grails - Grails 3字段插件自定义模板

    facebook - Grails Spring Security Facebook插件重定向到错误页面

    logging - 如何在 groovy 中为类/方法名称配置 java.util.logging?