我是Grails的新手,遇到过Eager和惰性抓取的名称。他们到底是什么?如果答案能解释何时应使用每种技术,那将是非常好的。
提前致谢。
最佳答案
假设您有一个包含Person表和address表的简单数据库架构。如果从数据库中加载人员,则有两个选项。
这只是一个例子,还有很多其他例子,以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;
}
}