我在http://docs.jboss.org/hibernate/core/3.3/reference/en/html/performance.html上读了Hibernate教程,得到了在select或Join中哪个获取策略更好的问题,我们应该继续研究。我知道大多数人会说,这取决于你的requirement.But,在大多数web应用程序中,我们都有共同的要求,即性能应该很好。以下是我的理解:-
惰性/选择获取策略:-选择获取策略是关联的延迟获取。延迟策略的目的是内存优化。当我说到内存优化时,这意味着它避免了堆错误。我就是这么想的。因此,我们可以说是的,如果我们正在加载太多的对象,我们应该采用延迟获取策略,但是就时间性能而言,它并没有提供任何好处。同意吗?
the / Join策略:- Join策略从时间上优化连接获取策略的associations.The目的,即在获取父对象时甚至连关联都被取回。所以在这种情况下,我们不会一次又一次地调用数据库。因此,如果我们在会话中获取太多的对象,这将是非常糟糕的faster.Agreed,因为我们可以获得java堆错误。
所以,现在我们可以说,在hibernate会话中,我们没有加载太多的对象,我们应该进行急切的提取,因为它在时间响应方面要好得多(只要我们关闭会话,垃圾收集器就会回收内存)?
发布于 2011-11-07 16:58:05
如果您需要加载数据,请选择Join,如果通常不需要,则使用Select。
关于Java Heap Error,不要太担心。你一定是装了很多东西。您可以设置batch size。对象的负载不是唯一的策略。
如果不需要加载所有对象,则可以添加特定的HQL或标准。
如果您需要的比您不需要的多,则选择Join,否则为Select。
https://stackoverflow.com/questions/8039538
复制相似问题