问题标签 [istatelesssession]

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 回答
600 浏览

nhibernate - NHibernate IStatelessSession 和多对多关系

我有两个实体之间的多对多关系。作为批处理的一部分,我正在创建大量这些实体并将它们关联在一起。这是使用IStatelessSession.

我正在使用 NHibernate 3.0。

实体:

基本上批处理代码看起来像:

这两个实体已正确持久化,但是它们之间的关系表并未随着两个实体之间的关系而更新。

我知道这与无状态会话不跟踪对象这一事实有关。但是我将如何实现多对多持久性呢?

0 投票
0 回答
162 浏览

.net - NHibernate:使用 IStatelessSession 手动处理读取值的集合

在将实体批量加载到数据库中期间,我有一个场景,其中传入实体依赖于数据库中的现有实体来计算值。此依赖项本身具有一组值类型,用于帮助计算此值。由于我使用IStatelessSession的是 ,因此通过会话加载实体时会忽略此集合。我想手动处理此集合的负载,但无法找到有关如何执行此操作的指导。

任何人都可以建议手动将值查询到集合中的最简单方法吗?

0 投票
4 回答
1394 浏览

c# - NHibernate IStatelessSession 的 Load 方法的等价物

我正在使用 NHibernate 将行批量插入到我的数据库中。由于我要插入的数据量很大,我使用IStatelessSession的是ISession. 我插入的对象使用分配的身份(即没有生成 hilo 或 guid——唯一的 id 被分配给对象)。

我的问题是我有一个对象(比如说Foo),它对另一个对象(比如说)有一个多对一的引用Bar。我先插入所有Bar对象,这没问题。

当我想插入Foo对象时,问题就来了。我知道每个对象的唯一标识符Bar,但我不想为了在插入对象之前Bar设置对象的属性而从数据库中检索每个对象。Foo

现在可能是展示一个简单示例的好时机:

假设我想创建一个(比如说)1234 的新Foo对象,Id它引用一个BarID 为(比如说)4567 的对象。我知道已经有一个Bar具有此标识符的对象,因为我之前添加了所有Bar对象.

如何在不必再次从数据库Foo中检索对象的情况下添加对象Bar

0 投票
2 回答
2956 浏览

nhibernate - NHibernate 会话(和无状态会话)和长时间运行的应用程序

在旨在运行作业的 Windows Web 服务的上下文中,我们尝试重用我们为 Web 应用程序开发的 NHibernate DAL。

对于会话管理,我们有两种选择,每种都有其优点和缺点:

有状态的会话

  • 因为它会跟踪所有内容(L1/会话缓存),所以会增长很多
  • 需要小心关闭,会话处理似乎不足以清除 L1 缓存(我使用内存分析器注意到的)

无状态会话

  • 目前无法重用映射。所有用“lazy=true”声明的包最终都会出现以下异常(即使会话尚未关闭):

Initializing [...] failed to lazyly initialize a collection of role: [...], no session or session was closed

显然,我们不能使用lazy="false" 更新映射(它们与网络应用程序共享),这将是性能的巨大缺陷

  • 无法与 L2 缓存交互:当将部署共享 L2 缓存时,服务将无法使 L2 缓存数据无效,以便 Web 应用程序拥有最新的数据

到目前为止,NHibernate 已经被证明是好的,我们已经成功地在 web 上下文中使用了有状态会话和 NHibernate LINQ,以及用于依赖注入的结构图。

我的问题是:

  • 在长时间运行的线程中使用 NHibernate 有什么好的解决方案吗?
  • 我更喜欢使用有状态会话,但如何避免内存泄漏?
0 投票
0 回答
78 浏览

java - 我们可以锁定无状态会话 bean 实例吗?

伙计们,

出于某种原因,我尝试达到无状态会话 bean 池的最大大小。

我可以使用大量线程来做到这一点,通过“同时”查找我的无状态会话 bean,但它需要消耗许多循环或许多线程来做到这一点,因为有时它会从池中选择创建的 bean 实例。结果,无法达到 Max-size。

所以,我的问题在这里:我们能不能找到一种方法来锁定实例(不像做大量的数学计算任务),保持“工作”状态并且不发送回空闲池,那么我们可以使用 Thread[ max-pool-size] 以达到目标,而无需执行一些烦人的循环。

谢谢,

0 投票
1 回答
790 浏览

nhibernate - NHibernate iStatelessSession 在急切获取时返回重复的父实例

我正在尝试获取一个根实体并渴望获取它的子实体。但是因为我使用的IStatelessSession是 NHibernate,所以它会为每个孩子返回根实体的副本。使用 ISession 可以解决

但对于一个IStatelessSession它不是。

基本上是关于下面的代码,其中只有一个 Parent 实例,拥有 3 个 Childs。

这将返回 3 个重复的 Parent 实例,而不仅仅是一个。有人对此有解决方案吗?