Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 延迟加载模型_Java_Data Access Layer - Fatal编程技术网

Java 延迟加载模型

Java 延迟加载模型,java,data-access-layer,Java,Data Access Layer,假设我有一个模型对象事件,它包含一个地点。当我查询数据库以填充场馆时,我只想存储可用于延迟加载场馆的venueid 我有一个数据访问类Events(复数),其函数类似于Event findEventByName(String name)。与其他模型对象类似。如果在我的活动课程中,我有getVenue类似: public Venue getVenue() { if (this.venue == null) this.venue = Venues.findVenueById

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

我有一个数据访问类
Events
(复数),其函数类似于
Event findEventByName(String name)
。与其他模型对象类似。如果在我的
活动
课程中,我有
getVenue
类似:

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

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

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


现代的对象到关系映射器非常先进。例如,EclipseLink可以动态修改类文件的字节码,以提供延迟加载等特性。他们叫它

其实没那么糟糕;我想问题是你有多少种不同的数据访问方式?如果你有很多,那么你可能想通过接口来做,否则看起来没问题。哦,那么也许,我可以保持原样,或者当我填充我的模型时,我也会注入DataAccess对象。