【问题标题】:Lazy loading models延迟加载模型
【发布时间】:2012-03-12 09:53:02
【问题描述】:

假设我有一个模型对象Event,其中包含Venue。当我查询数据库以填充场地时,我只想存储venueid,它可用于延迟加载Venue

我有数据访问类Events(复数),其功能类似于Event findEventByName(String name)。其他模型对象也类似。如果在我的Event 类中,我有getVenue 喜欢:

public Venue getVenue() {
    if (this.venue == null) 
        this.venue = Venues.findVenueById(this.venueid); 
    return this.venue;
}

这会起作用,但它会将我的模型与我的数据访问结合起来。我认为我的设计不是真的“正确”?那么我该如何改变它。对于这个学术项目,我认为我不会使用像 Hibernate 这样的 3rd 方库来了解如何实现它。

【问题讨论】:

  • 其实没那么糟;我想问题是您有多少种不同的数据访问方式?如果你有很多,那么你可能想通过界面来做,否则看起来没问题。

标签: java data-access-layer


【解决方案1】:

我认为您是正确的,因为它不是将您的对象模型与您的数据访问相结合的最佳设计。

现代对象到关系映射器是相当先进的。例如,EclipseLink 可以动态修改类文件的字节码以提供延迟加载等特性。他们称之为weaving

【讨论】:

  • 哦,那么也许,我可以保持原样,或者当我填充我的模型时,我也注入 DataAccess 对象。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-22
  • 2019-12-16
  • 2014-01-15
  • 1970-01-01
  • 2017-02-22
  • 1970-01-01
  • 2019-07-15
相关资源
最近更新 更多