Hibernate中的延迟加载和集合

use*_*232 3 java orm hibernate lazy-loading

如果我想从延迟加载的集合中获取单个或仅少量项目(例如,第1个,第3个和第5个),Hibernate将从数据库中获取所有项目,然后返回我请求,或者它将专门从数据库中检索所请求的请求

Boz*_*zho 9

看看超级懒惰的系列

但是,如果您需要特定的项目,只需查询它们而不是从集合中获取它们.


Emm*_*ard 6

额外懒惰的替代方法是使用Collection过滤器 http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#objectstate-filtering

这基本上是基于集合内容的查询.这包括分页的可能性.

Collection tenKittens = session.createFilter(
    mother.getKittens(), "")
    .setFirstResult(0).setMaxResults(10)
    .list();
Run Code Online (Sandbox Code Playgroud)