问题标签 [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 回答
1162 浏览

c# - 是否 LazyInitializer.EnsureInitialized有明确的线程安全承诺?

我想制作一个可以通过属性注入进行测试的惰性属性。如果我要使用 Lazy 字段,我看不出如何在测试期间注入自己的字段。这是我的代码:

我想知道 BCL 团队是否承诺此代码是线程安全的?从文档中不清楚。

0 投票
1 回答
4619 浏览

java - lazy="false" 是“org.hibernate.LazyInitializationException: could not initialize proxy – no Session”的唯一解决方案吗

0 投票
2 回答
2098 浏览

java - 避免 Hibernate LazyInitializationExceptions 的架构

我正处于我的项目的开始阶段。所以我正在尝试设计一种避免 Hibernate LazyInitializationExceptions 的架构。到目前为止,我的 applicationContext.xml 有:

hibernate.cfg.xml:

Role.java:

和 User.java:

HibernateEMSDao 有两种从数据库保存和加载用户的方法:

现在我测试了如果我实现HibernateEMSDao#getUser为:

我得到 LazyInitializationExcaption - 会话已关闭。但第一种方法工作正常。所以我需要建议在不久的将来避免这种异常。任何小的信息都是可观的。

谢谢并恭祝安康。

注意:重新启动服务器后出现该错误。

编辑:添加代码:

0 投票
1 回答
496 浏览

spring - 惰性应用监听器

当我添加ApplicationListener到一个类时,Spring 会急切地实例化 bean(可能是为了确保 bean 获取所有事件)。

在我的例子中,我有一个监听“CacheFlush”事件的bean(即我真的不在乎我可能会错过多少)。

如何ApplicationEvent在 Spring 3.0 中实现惰性侦听器?

0 投票
2 回答
367 浏览

objective-c - 错误编码的延迟初始化效果很好

是否故意错误编码的惰性初始化:

然而,由于下面生成的代码序列,“正确的事情”吗?

  • 将 prop 加载到 rax 中进行测试
  • 在任何情况下都返回 rax
0 投票
6 回答
5694 浏览

hibernate - 在 JSF 中使用 JPA 实体。防止 LazyInitializationException 的最佳策略是什么?

想听听专家关于从 JSF UI 编辑 JPA 实体的最佳实践。

所以,就这个问题说几句。

想象一下,我有一个持久化的对象MyEntity,我把它拿来进行编辑。在 DAO 层我使用

它返回MyEntity带有“父”实体代理的实例 - 想象其中一个是MyParent. MyParent被提取为代理问候语@Access(AccessType.PROPERTY)

并且 MyEntity 引用了它:

到目前为止,一切都很好。在 UI 中,我只是直接使用获取的对象而不创建任何值对象,并在选择列表中使用父对象:

一切正常,没有LazyInitializationException发生。但是当我保存对象时,我收到了

关于MyParent代理setId()方法。

如果我将MyParent关系更改为EAGER

或使用获取对象left join fetch p.myParent(实际上我现在就是这样做的)。MyParent在这种情况下,保存操作正常,并且关系透明地更改为新对象。无需执行其他操作(手动复制、手动参考设置)。非常简单方便。

但是。如果对象引用 10 个其他对象 -em.find()将导致10 个额外的连接,这不是一个好的数据库操作,尤其是当我根本不使用引用对象状态时。我所需要的只是指向对象的链接,而不是它们的状态。

这是一个全球性问题,我想知道 JSF 专家如何在他们的应用程序中处理 JPA 实体,这是避免额外连接和LazyInitializationException.

扩展持久性上下文不适合我。

谢谢!

0 投票
2 回答
299 浏览

java - 具有双重检查锁定和空处理的 LazyReference

我已经使用LazyReference类几年了(当然不是定期使用,但有时它非常有用)。课程可以在这里看到。归功于 Robbie Vanbrabant(课程作者)和 Joshua Bloch 以及他著名的“Effective Java 2nd edt”。(原始代码)。

该类可以正常工作(在 Java 5+ 中),但存在一个小问题。如果instanceProvider返回null(当然它不能根据 GuiceProvider.get()合同,但是......)然后在每次执行LazyReference.get()方法时,LOCK 将被持有并被instanceProvider.get一遍又一遍地调用。对于那些违反合同的人来说,这似乎是一种很好的惩罚(he-he),但如果真的需要懒惰地初始化一个可以设置null值的字段怎么办?

我稍微修改了 LazyReference:

恕我直言,它应该可以正常工作(如果您有其他意见,请发表您的评论和批评)。但是我想知道如果我volatile从布尔值中删除修饰符会发生什么isNull(当然保留它instance)?它还能正常工作吗?

0 投票
2 回答
1163 浏览

java - 如何更好地避免 LazyInitializationException?

@ManyToOne目前我有一个与其父实体有关联的子实体。以前的开发人员已经将此字段设置为lazy="false"在会话关闭时在需要时获取父级,但是我决定它应该是lazy="true"因为它并不总是使用但是这样做时我遇到了LazyInitializationException,因为会话已关闭并且子级与尝试获取父级时的会话。

我想知道将如下所示的方法的更多逻辑移动run到与 s 交互的服务类是否正确,DAO因此我可以避免异常,因为当前服务类就像普通类一样,DAO注入了所需的 s 并且它们只是调用方法并DAO返回结果。我是否应该在与实体交互的服务类中放置更多方法,这将获取用户并检查所有登录操作,如果需要则获取父级,然后将登录结果返回给run方法..

我使用 Spring<tx:advice>来处理关闭和其他与事务相关的事情。

0 投票
1 回答
126 浏览

c#-4.0 - 关于 C# 4.0 中惰性特性的使用

我有一个像下面这样的 Userdetails 类

这里的 Address 是另一个具有公共字段的类,例如

现在,当用户登录应用程序时,我构造了 Userdetails 对象。现在我不会经常在 userdetails 中使用地址对象,但有数据。

在这种情况下,我如何使用 C# 4.0 的延迟初始化功能。

请注意,数据来自直接 db 查询,这些类都没有构造函数或其他获取数据的方法。这些只是 C# 中数据库字段的表示。

建议我在这里使用延迟初始化的最佳方法。

0 投票
4 回答
1093 浏览

x86 - 静态存储(主要是数据段)会导致分段错误吗?

static存储在编译时决定。但是,考虑一下我们在函数中有很多延迟初始化的场景:

我在这里讨论的不是编码实践,而是技术方面。由于执行了许多其他功能 ,因此将在数据段中引入这些变量foo()static

编译器在为数据段分配空间时也会考虑到延迟初始化。如果“否”,那么它会在代码执行时在运行时导致分段错误吗?static(当方法中有大量数据时更可能发生template)。