2014-12-02 102 views
0

我目前正在阅读关于渴望vs延迟加载。我很困惑,并将其与负载和空载比较。为什么使用懒惰/渴望加载数据库级别

比方说,我有两个部分的UI。其中一个我想显示子数据以及父数据,在第二个UI中,我只显示父数据。然后,我应该在数据库级写两个不同的调用,一个正在加载子数据,另一个只加载父数据。

懒惰/渴望加载如何在这种情况下有所帮助,因为如果我做延迟加载,那么它将消耗更多的时间在第一种情况下,因为它会查询以后而不是使用连接等,如果我使用eager那么它会消耗时间在情况2中,因为不需要儿童数据。

请让我纠正,如果我错了,并告诉我一些情况下,急切/懒惰加载可以有所帮助。

回答

2

我会通过一个例子来展示这一点。情景是这样的;

你是一个有很多玩具的孩子的家长。但目前的问题是每当你给他打电话(我们假设你有一个男孩)时,他也会带着他所有的玩具来找你。现在这是一个问题,因为你不希望他随身携带他的玩具。

因此,作为父母的理由,你马上向前定义孩子的玩具为懒惰。现在,只要你给他打电话,他就会没有他的玩具来找你。

但是你面临着另一个问题。到家庭旅行的时候,你希望他带上他的玩具,否则这个孩子会对这次旅行感到无聊。但是,由于您严格执行LAZY玩具,您无法要求他携带玩具。这是EAGER取材的地方。

+0

我很清楚所有这些,我的问题是如何处理这种情况?如果我谈论hibernate并写入一个调用来获取孩子,那么它应该是懒惰还是渴望,因为在一种情况下都好,但对另一种情况不好正如我在我的问题中所解释的那样,或者简单地说我应该写两个不同的hibernate调用。 – 2014-12-02 13:09:10

+0

根据我的懒加载是好的。 – Harshit 2014-12-02 13:21:17

+0

[链接] http://dinukaroshan.blogspot.in/2012/08/lazyeager-loading-using-hibernate-by.html我为你重新链接这个链接可能会帮你 – Harshit 2014-12-02 13:21:33