问题标签 [lazy-initialization]

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.

0 投票
1 回答
1067 浏览

rest - JAX-RS:如何在 Restful 调用中选择性地选择 xml 输出?

假设我正在尝试使用宁静的界面列出所有产品。

当我尝试在产品上调用 find.All 时,它甚至试图获取 ProductUsers 并引发异常

我不想在我的 rest xml 输出中包含产品用户。如何有选择地选择 xml 中包含的内容?

我使用 REST-Easy、JBoss AS7、JPA 和 Hibernate 作为实现。我的 EJB 3.1 方法公开为 Restful 服务。

感谢你的帮助!

0 投票
0 回答
549 浏览

c++ - call_once 和 once_flag 在 DLL 之间共享

我有一个使用 std::call_once() 和 std::once_flag 的类,用于在第一次使用类构造函数期间对类中的静态数据进行延迟初始化。因此,once_flag 是类的静态成员。我的问题是我不知道在主应用程序和应用程序在不同时间加载和卸载的各种 DLL 之间共享它的最佳方式。

我唯一的想法是让 EXE 版本的类导出一个std::once_flag *GetOnceFlag()返回静态 one_flag 的地址,而 DLL 中的类将使用 call_once() 和 GetOnceFlag():MyClass::Myclass(void) { call_once(*GetOnceFlag(), &MyClass::Init, this); }这种方法有效吗?

缺点是每次 ctor 都会调用 GetOnceFlag(),这对于轻量级 ctor 来说效率很低(在我的例子中,它除了调用 call_once() 什么都不做)。但是我不确定缓存指针所暗示的竞争是否MyClass::Myclass(void) { if (!_pflag) _pflag = GetOnceFlag(); call_once(*_pflag, &MyClass::Init, this); }是一个问题(指针写入在我感兴趣的所有平台上都是原子的,所以如果同时调用 GetOnceFlag(),我认为它应该是好的,但我不完全确定)。

欢迎评论和更好的解决方案。

编辑:我知道共享类可以放在其他人使用的单独 DLL 中,但这不会影响 MSVC 所做的整个程序优化/链接时代码生成吗?我假设 /GL 和 /LTCG 文档中提到的跨模块优化仅针对链接的单个对象和静态库,并且不能跨 DLL 边界发生。

0 投票
0 回答
559 浏览

spring - 即使在使用 spring OpenSessionInViewFilter 之后仍然得到 LazyInitializationException

环境:

  • 网豆 7.1
  • 春天 3.1.1
  • 休眠 4.0.1
  • JSF

我已经使用 org.springframework.orm.hibernate4.support.OpenSessionInViewFilter 实现了 Spring OpenSessionInViewFilter

但是,我仍然收到错误消息: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role

我知道正在调用过滤器 - 我可以在堆栈跟踪中看到它。我还需要配置什么?Hibernate 配置包括以下内容:

0 投票
0 回答
537 浏览

.net - 预加载 .net DLL - GAC、NGEN、LoadAssembly 和 PrepareMethod

我们希望减少在我们的应用程序中显示表单的加载时间。在用户需要之前,我们有足够的时间在工作线程中加载 DLL(主要是大量的 DevExpress DLL)。我在这里、MSDN 等上阅读了许多帖子,并且有几个问题。

  1. 大多数 DLL 都在 GAC 中。我认为(不确定)NGEN 在安装或第一次使用时在这些 DLL 上运行。那是对的吗?如果是这样,则无需致电 NGEN。
  2. 我们有 2 个不在 GAC 中的 DLL,是否有如何在 WIX 脚本中调用 NGEN 的示例?
  3. 我们仍然需要加载它们。加载程序集PrepareMethod是更好的方法吗?
  4. 我们是一个 Office 插件(因此有很多时间在工作线程中加载)并且有一个在 Office 启动时加载的 DLL(不在 GAC 中)。NGEN 是我们唯一可以加快加载主 DLL 的方法吗?
  5. 我们还有一个非托管 C++ (shim) DLL,它在 Office 启动时也会加载。我们可以做些什么来加快它的速度?

谢谢 - 戴夫

0 投票
1 回答
113 浏览

java - 暂时强制 LazyInitializationExceptions

传统上,我们尽量避免 LazyInitializationException使用s。但是,我需要暂时允许它们被抛出。这是我正在尝试做的伪代码:

magicallySerializeDataCurrentlyInMemory方法递归地尝试序列化内存中的数据customer及其相关实体,LazyInitializationException并在此过程中吸收 s。

尝试#1:session.disconnect/session.reconnect

在这次尝试中,我使用了这种模式:

不幸的是,它没有抛出LazyInitializationExceptions。

尝试#2:session.close/session.reconnect

在这次尝试中,我使用了这种模式:

不幸的是,这使得sessionafter 无用session.reconnect(connection)

我怎样才能暂时强制LazyInitializationExceptions?

0 投票
2 回答
10135 浏览

c# - C# 中的惰性字典属性

我有一个属性是字典的类:

我想切换此属性以使用延迟初始化。我尝试了以下方法:

这当然是一个错误,因为 Name 和 name 有不同的类型。不过,对于我的一生,我无法弄清楚如何正确指定这一点。我真正想要的只是让 Name 在我访问它之前保持为空,然后在第一次读取或写入时创建它。

0 投票
0 回答
767 浏览

hibernate - jsf+hibernate:保存多对多关系

我正在使用 Hibernate 3.2.5 和 JSF 2.1。

我有表accounts、accounts_opportunities 和opportunities,即建立了多对多关系。

我已经映射了所有的表格,即模型。

为了保存帐户,我使用以下代码:

保存 Accounts 对象时出现以下错误:

我是 JSF 和 Hibernate 的新手,不明白为什么 Hibernate 不会保存我的对象!

更新:

我使用以下注释更新了 Accounts 模型:

数据仍未保存到数据库中。我现在收到诸如会话关闭之类的错误。

0 投票
2 回答
447 浏览

objective-c - +(void)initialize 方法中的 alloc-init 对象以多次重用它们

NSDateFormatter多次使用一个对象(为特定目的定制)。由于我不是 objc 专家,因此我想出了三种不同的方法来处理它。

在第一个中,我创建了一个NSDateFormatter类别并在那里自定义了代码。这是一种常见的方法,但每次我创建这样一个对象时,它都会放在主自动释放池中。我认为这种行为对非 ARC 和 ARC 代码都有效。

在第二个中,我重写了该+(void)initialize方法并将自定义代码放在那里。这里有一个简单的例子:

最后,我通过如下属性设置了第三种方法,使用延迟加载实例化:

说到这里,我想知道哪种方法最适合多次处理对象,以及+(void)initialize以这种方式使用是否正确。

先感谢您。

0 投票
2 回答
1191 浏览

objective-c - 什么是与 Objective-C 相关的便利初始化程序?

我大约 8 个月前开始学习编程,从 C、OOP 开始,现在到 iOS,这是我的目标。在大多数情况下,一切都很顺利,我已经开始通过在 xcode 上编写小型应用程序来练习。只是像便利初始化器这样的小术语有时会让我失望。任何人都可以为我定义这个术语,并给我一个简单的例子来说明它的用法吗?我了解分配和初始化的概念,但我无法区分初始化程序和便利初始化程序。我在网上看过,但运气不太好。

任何帮助表示赞赏,谢谢

0 投票
2 回答
409 浏览

python - 如何在 webapp2 中导入模型和处理程序以确保新应用实例的快速启动

我希望我的谷歌应用引擎 webapp2 应用尽快启动(创建一个新的应用实例)。我想知道我应该注意哪些明显的减速(我知道......过早的优化,但如果我能提供帮助,我不想在最后进行大规模的重构)

我有一个类似于这样的文件夹层次结构:

在 main.py 中,我使用路由器创建了一个应用程序实例(路由器是从 routes.py 导入的)。routes.py 导入每个处理程序(为每个路由分配一个处理程序)。每个处理程序都会导入几乎所有数据模型。这是否意味着我的应用程序创建新应用程序实例的速度很慢?

我预计到我的项目结束时会有大约 100 个处理程序和 30 个数据模型,尽管其中许多将很少使用。

导入数据模型(从 some_handlers.py 内部)

以下内容是否足够快:

from root_folder.data_model_folder.more_ndb_models import special_model

我应该寻找使用配置/注册表吗?