问题标签 [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.
nhibernate - NHibernate IStatelessSession 和多对多关系
我有两个实体之间的多对多关系。作为批处理的一部分,我正在创建大量这些实体并将它们关联在一起。这是使用IStatelessSession
.
我正在使用 NHibernate 3.0。
实体:
基本上批处理代码看起来像:
这两个实体已正确持久化,但是它们之间的关系表并未随着两个实体之间的关系而更新。
我知道这与无状态会话不跟踪对象这一事实有关。但是我将如何实现多对多持久性呢?
.net - NHibernate:使用 IStatelessSession 手动处理读取值的集合
在将实体批量加载到数据库中期间,我有一个场景,其中传入实体依赖于数据库中的现有实体来计算值。此依赖项本身具有一组值类型,用于帮助计算此值。由于我使用IStatelessSession
的是 ,因此通过会话加载实体时会忽略此集合。我想手动处理此集合的负载,但无法找到有关如何执行此操作的指导。
任何人都可以建议手动将值查询到集合中的最简单方法吗?
c# - NHibernate IStatelessSession 的 Load 方法的等价物
我正在使用 NHibernate 将行批量插入到我的数据库中。由于我要插入的数据量很大,我使用IStatelessSession
的是ISession
. 我插入的对象使用分配的身份(即没有生成 hilo 或 guid——唯一的 id 被分配给对象)。
我的问题是我有一个对象(比如说Foo
),它对另一个对象(比如说)有一个多对一的引用Bar
。我先插入所有Bar
对象,这没问题。
当我想插入Foo
对象时,问题就来了。我知道每个对象的唯一标识符Bar
,但我不想为了在插入对象之前Bar
设置对象的属性而从数据库中检索每个对象。Foo
现在可能是展示一个简单示例的好时机:
假设我想创建一个(比如说)1234 的新Foo
对象,Id
它引用一个Bar
ID 为(比如说)4567 的对象。我知道已经有一个Bar
具有此标识符的对象,因为我之前添加了所有Bar
对象.
如何在不必再次从数据库Foo
中检索对象的情况下添加对象Bar
?
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 有什么好的解决方案吗?
- 我更喜欢使用有状态会话,但如何避免内存泄漏?
java - 我们可以锁定无状态会话 bean 实例吗?
伙计们,
出于某种原因,我尝试达到无状态会话 bean 池的最大大小。
我可以使用大量线程来做到这一点,通过“同时”查找我的无状态会话 bean,但它需要消耗许多循环或许多线程来做到这一点,因为有时它会从池中选择创建的 bean 实例。结果,无法达到 Max-size。
所以,我的问题在这里:我们能不能找到一种方法来锁定实例(不像做大量的数学计算任务),保持“工作”状态并且不发送回空闲池,那么我们可以使用 Thread[ max-pool-size] 以达到目标,而无需执行一些烦人的循环。
谢谢,
nhibernate - NHibernate iStatelessSession 在急切获取时返回重复的父实例
我正在尝试获取一个根实体并渴望获取它的子实体。但是因为我使用的IStatelessSession
是 NHibernate,所以它会为每个孩子返回根实体的副本。使用 ISession 可以解决
但对于一个IStatelessSession
它不是。
基本上是关于下面的代码,其中只有一个 Parent 实例,拥有 3 个 Childs。
这将返回 3 个重复的 Parent 实例,而不仅仅是一个。有人对此有解决方案吗?