栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

标准渴望获取联接集合,以避免n + 1个选择

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

标准渴望获取联接集合,以避免n + 1个选择

这说明了为什么对fetch-joined集合添加限制会导致集合未初始化( 请注意 ,没有限制的同一查询会为集合急切地获取数据):

“如果表A和B之间的关系为1:n,并且对B添加了限制,并且希望能尽快获取它,那么问题是当您要从A导航到B时会发生什么。只查看B中符合限制条件的数据,还是应该查看与A相关的所有B?”
在这里看到更多…

但是,使用HQL代替标准,部分获取出价集合

List<Item> items = session.createQuery(          "from Item i left join fetch i.bids b where b.amount > :amount")          .setParameter("amount", 100)          .list();

在我看来,这是不一致的,但这就是它的工作原理

顺便说一句,如果您需要的是父母及其所有子女的清单,而仅是其子女都满足一定限制的父母,那么您可以使用此清单

List<Item> items = session.createQuery(          "from Item i left join fetch i.bids b " +          "where not exists (from Bid b where b.item = i and b.amount <= :amount)")          .setParameter("amount", 100)          .list();


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/393156.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号