问题标签 [eager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Rails + UUID + 急切加载
我的 rails 应用程序中有 2 个模型,一个带有 UUID 主键:
当我尝试这样的事情时:
我得到了很好的结果,但我在日志文件中看到了 2 个请求。当我们更改 UUID 键的 ID 键时,为什么急切加载不起作用?
我会有类似的东西:
有解决方法吗?如果我将 uuid 键更改为 id 键,但保留字符串格式来存储 uuid,可以吗?
谢谢,
haskell - 渴望与懒惰的哈斯克尔。Eager 语言中可能存在无限列表?
显然,可以实现 Haskell 以便它热切地评估而不改变语言的语义。如果这是真的,那么如何处理无限数据结构?
http://csg.csail.mit.edu/pubs/haskell.html
因此,大量时间用于创建和销毁暂停的计算(thunk)。很多时候,这些计算非常简单,以至于评估它们同样容易。Faxen 和其他人已经使用静态分析来揭示这种渴望的机会。相反,我们建议在任何地方都使用渴望,同时使用允许我们在程序过于渴望时恢复的机制。
关键是“如果我们的程序过于急切,我们有恢复机制”。这些机制是什么?它们如何允许无限的数据结构和我一直相信的惰性求值的其他方面在热切的语言中是不可能的?
java - 是否有用于检测 N+1 获取的 Grails 插件(类似于 Rails 子弹 gem)?
我最近了解了解决 N+1 问题并确定您的应用何时应该或不应该使用 Eager fetching 的 Rails “bullet” gem。显然,它会在运行时检查不需要的 N+1 负载的发生,或者在使用延迟获取的情况下需要急切获取以加快速度。
https://github.com/flyerhzm/bullet
Grails 是否有等效的插件?
list - 懒惰与急切的评估和双链表构建
我睡不着!:)
我在 Haskell 中编写了构建双链表的小程序。使其成为惰性评估的基本语言的属性(请参见下面的一堆代码)。我的问题是,我是否可以用纯粹的函数式语言做同样的事情并进行热切的评估?无论如何,渴望函数式语言必须具备哪些属性才能构建这样的结构(杂质?)?
json - grails,在将域列表呈现为 JSON 时禁用渴望获取
模型:
然后我有一个控制器
问题在于,即使 Author-Books 关联是惰性的,也会执行 N+1 个查询以急切地获取每个 Author 的书籍。它会发生什么,我该如何禁用它
ruby-on-rails - Rails - 为什么急切加载在这种情况下不起作用?
我有这 3 个模型与 has_many through 关系:
但是如果我有 10 种葡萄酒,我会在我的日志中看到 10 个请求,比如在主要的 Wine 请求之后:
如何在主请求中加载葡萄以使每个葡萄都没有请求?
jpa-2.0 - 使用 JPA 进行延迟加载与急切加载
我正在尝试让一些 JPA 工作。我有一个表,它有另一个表的外键。当我生成 JPA 实体时,我会在这些变量上获得一对多的注释......我还需要做什么才能让所有表回到结果集中?如果我确实调用它。这是我正在尝试做的一个例子。
@OneToMany 注释坐得很漂亮......
我正在考虑取回所有值,我只需要调用调用此表的命名查询吗?
我是否认为我还将获得包含所有结果集的 DistributionLinks 数组?现在我知道这与急切加载与延迟加载有关。究竟是什么,我不确定。我知道延迟加载只加载显式调用的@oneToMany 属性(我认为)?我怎样才能取回我需要的所有收藏品。我是否需要遍历结果集并调用命名查询以使用命名查询获取所有结果集?
谢谢。
java - 渴望在 Hibernate 中使用 ScrollableResults 获取集合
我正在尝试使用 Hibernate 从表中检索大约 1 亿行。我有一个包含费用集合的持久实体项目(另一个持久实体)。鉴于我将遍历结果并访问每个对象的费用,我想急切地获取费用以避免 n+1 问题。
我还应该提到我想将它加入另一个名为 Provider 的表(一对一映射但没有外键)。我试过:
我的 Order 类包含一个 Provider 字段和一个 Item 字段。我收到此错误:
引起:org.hibernate.QueryException:查询指定连接提取,但提取关联的所有者不存在于选择列表中
我想最终得到一个可滚动的订单列表,其中包含项目(急切收取的费用)和提供者。
hibernate - 带有 fetchMode 的 Grails 标准查询具有两个级别
在我的 Grails 项目中,我有以下类:
我想查询 A 类并热切地带来 B 和 C 的所有关联。我尝试了以下条件查询,但是当我从 A 遍历 Cs 时,hibernate 使用延迟初始化来查询 B 对象。
有任何想法吗?
java - 试图理解 Hibernate Fetch Eager Strategy
如果在请求期间由休眠 (V3.5.1) 执行 SQL 语句,我目前会遇到严重的性能问题。所以我试图深入细节以了解 Eager-fetching 的细节。
基本上,问题似乎源于我们使用的匹配实体引用两个匹配的配置文件实体的问题。似乎hibernate只急切地获取带有连接的配置文件,而不是两者。另一个由选择加载。
所有关联都由 FetchMode.Join 和 @ManyToOne(@OneToOne(optional=false, fetch=FetchType.EAGER, cascade=...)
我已经设置了一个简单的示例,以测试使用 HQL 和 Criterieas 的各种方法来通过 hibernate 获取 MatchingData。不幸的是样板代码太大,无法详细发布。我可以按需提供。
测试是
数据库中有 2 个 MatchingData 和 3 个涉及的 ProfileData,结果是
据我了解:HQL find 本身不会进行急切的提取,而是通过单独的选择加载 ProfileData (以及更多数据)。当然我可以添加一些 Eager Fetching Hints,但这在复杂的数据结构中是相当麻烦的。
Criteria Query 设法在一个语句中加载一侧(potentialMatch)和它的 SearchData。另一端(searchingProfile)也被获取,但从属实体(SearchData 和其他元素)然后通过显式选择获取。
问题:是否有一种优雅的方式来确保一次快速加载数据?