问题标签 [lazy-loading]
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.
django - Django(和其他 MVC/ORM)中的延迟加载关系
有兴趣了解如何在 Django 等框架中实现延迟加载。何时决定执行联接?有没有办法在 Django 中强制加载?是否有时需要强制 Django 急切加载?
linq-to-sql - 如果通过泛型方法调用,Linq 不会延迟加载?
所以,我有一个方法:我正在计算一个有洞的序列中的数字,这个数字应该是第一个洞或 max()
我像这样使用它:
所以,我希望 linq 有一些查询,例如:
相反,我得到:
所以 linq 获取所有表数据然后过滤它,但这种行为是不可接受的,因为表包含很多数据。有什么解决办法吗?
java - 为什么 Hibernate Open Session in View 被认为是一种不好的做法?
您使用什么样的替代策略来避免 LazyLoadExceptions?
我确实了解开放式会话存在以下问题:
- 在不同 jvm 中运行的分层应用程序
- 事务仅在最后提交,并且很可能您想要之前的结果。
但是,如果您知道您的应用程序在单个虚拟机上运行,为什么不使用视图中的开放会话策略来减轻您的痛苦呢?
c# - LINQ to SQL 延迟加载
数据库ML
我的 dbml 中有以下实体:(作为示例)
箭头是我的 dbml 中的关系。
一本书是一种媒体,一本书的一个实例具有一个媒体属性,该属性具有其中所有媒体共有的值。AuthorsForMedia 是一个包含 AuthorId、MediaId 和 AuthorsForMediaId 的交叉表。
询问
我在我的存储库中的获取查询是:
生成的对象设置了 book 属性,并设置了 media 属性及其所有值。
当我在调试时在 Watch 对话框中查看 AuthorsForMedia 时,设置了以下值:
问题 1
为什么不能通过延迟加载来评估 AuthorsForMedia 的值(以及相应的 Author 属性)?
我尝试过的事情
读完这个问题后:
我用 LoadWith/AssoicateWith 尝试了 DataLoadOptions,但它没有用。我最终遇到了类似的错误
- 无法创建类 Foo 错误的实例:System.NotSupportedException:Book 类型的媒体不支持子查询
- ... System.InvalidOperationException:指定的表达式必须采用 pA 的形式,其中 p 是参数,A 是属性或字段成员
- 或者价值不存在
如果有帮助,我可以为所有这些提供代码片段,但我认为这是一个概念问题,而不是语法问题。
概括
我应该如何检索这些值,它应该是左连接还是我到目前为止还没有找到的其他东西?
nhibernate - 使用 NHibernate Castle Facility 进行延迟加载
我是否必须关闭Castle为 NHibernateISession
生成的 's ?ISessionManager
我如何处理与那些ISession
的交易?我对 NHibernate 还是很陌生。
编辑:我想要延迟加载,但我收到这条消息:
正在初始化[无法延迟初始化角色集合:,没有会话或会话已关闭”
这是我继承以实现特定实例的通用存储库。
这是调用该存储库的示例:
c# - NHibernate.LazyInitializationException
我们偶尔会弹出这个问题,但现在我每次都可以重现它。我在自定义构建的论坛上增加了一个视图计数器,这会导致错误:
NHibernate.LazyInitializationException: 延迟初始化集合失败,没有会话或会话被关闭
此错误发生在对象中的另一个集合上。如果我添加:
.Not.LazyLoad()
对于我的 Fluent 映射,错误在我的项目中发生了变化。我一直禁用对象的延迟加载,直到它到达没有延迟加载的位置,然后它抛出了这个错误:
NHibernate.LazyInitializationException:无法初始化代理 - 没有会话。
所以,然后我在我的延迟加载中去掉了那些不,现在我又回到了原点。只有当我增加这个视图计数器时才会出错。这是我的基类保存代码的片段:
环顾四周,我在另一篇文章中读到交易可能会导致问题,但那是因为它们的放置位置。此代码扩展到与我的域对象(存储库类)分开的类。这是帖子:
休眠:LazyInitializationException:无法初始化代理
我不相信这是我的问题。这是我对抛出错误的第一个集合的流畅映射。还有其他几个类似的集合。
java - 不可靠的休眠对象
我遇到了从查询传回的 Hibernate 对象不可靠的情况。
考虑以下代码:
这是我的获取方法:
现在,我知道这个对象是一个代理,并且会被延迟加载,但我希望它要么总是工作,要么永远工作。我在这里做错了吗?
hibernate - 在带有 jpa/hibernate 的 Spring 中,如何保持会话打开以避免延迟初始化异常?
我目前将实体 bean 中的集合标记为急于避免在使用 EntityManager 加载 bean 后尝试访问集合属性时出现延迟初始化异常。
如果我将集合保留为延迟加载,如何保持会话打开?我考虑过尝试@Transactional,但即使这有效,我也不想这样做,因为让事务在很长的方法上保持打开状态似乎是不正确的。
asp.net - 我不确定延迟加载模式在这里是否有用
我目前正在阅读一本关于网站编程的书,作者提到他将编写 DLL 对象以使用延迟加载模式。我认为从概念上讲我有点理解延迟加载模式,但我不确定我是否理解它在作者实现它的方式中的用处
顺便说一句 - 这里我不是在问一般延迟加载模式的有用性,而是在这本特定的书实现它的方式上是否有用:
1) 无论如何,当创建 DLL 对象时,会执行一个 DB 查询(通过 DAL),它从各个列中检索数据并用它填充我们的 DLL 对象的属性。由于其中一个字段(称为“ L ”)可能包含大量文本,因此作者决定仅在第一次读取该属性时检索该字段。
A)在我们的情况下,我们通过应用延迟加载模式究竟获得了什么?只是更少的内存使用?
B)但另一方面,作者实现延迟加载模式的方式不会导致 CPU 做更多的工作,从而导致更长的时间来完成,因为如果 L 是与其他字段分开检索的,那么这将需要我们的应用程序对 Sql Server 进行额外调用以检索“ L ”,而在没有延迟加载模式的情况下,只需要对 Sql Server 进行一次调用,因为我们会一次获取所有字段?!
顺便说一句——我意识到延迟加载模式在检索特定数据需要大量计算的情况下可能非常有用,但在上面的示例中并非如此
谢谢