问题标签 [nhibernate-projections]

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 投票
2 回答
80 浏览

nhibernate - 将投影添加到连接中

如何向此代码添加投影?我正在尝试根据创建日期或上次更新日期对结果进行排序。

//添加此投影时出错:

我将我的传递Conjuction给另一个将处理任务检索的方法,即var tasks = GetCollaboratedTasks(c);

0 投票
2 回答
2778 浏览

grails - gorm投影和元信息丢失

在属性上使用投影时,结果以列表的形式返回,其中元素的顺序与投影块中定义的顺序相同。同时,列表中缺少属性名称,这对开发人员来说确实是不利的,因为结果将被传递,调用者需要知道哪个值属于哪个属性。有没有办法从 Criteria 查询中返回一个映射,其中属性名称作为值的键?

所以,下面的代码:

这将返回:

相反,我希望它返回:

我知道我可以在得到结果后以这种方式安排,但我真诚地认为标准应该使用属性别名来返回一个模仿 SQL 查询结果的映射列表,而不是一个平淡无奇的列表。

0 投票
2 回答
1172 浏览

nhibernate - nHibernate 投影 - 分页和不同

我试图解决的高级问题是在搜索子集合中可能存在的内容时重复分页。

我采用的方法是创建一个独特的投影,其中包含与我的 DTO 相关的信息。我也知道这些值在每一行之间不会改变。

当我引入分页/排序元素时会出现问题。

查看 NH Profiler,我看到的 SQL 如下:-

我想要获得 DISTINCT 投影的意图被阻挠,因为 ROW_NUMBER() 使每一行都独一无二。

我遇到了这篇博文,它描述了我遇到的同样的问题。

http://www.daczkowski.net/2010/09/07/rows-duplication-for-certain-nhibernate-queries-%E2%80%93-workaround/

那里提供的解决方案涉及更改 nHibernate MS SQL 代码;这是一种选择,但我很想避免。nHibernate 的最新版本中是否有解决此问题的选项?

编辑

在 nHibernate 3.3.1 中修复 - 请参阅下面的答案。

0 投票
1 回答
397 浏览

nhibernate - 如何使用 NHibernate 保存 DTO?

我想做的事:

  1. 使用投影获取 DTO
  2. 在 UI 中我编辑这个 DTO 对象
  3. 保存修改的对象

如何保存 DTO 对象?我应该重新查询域并将其合并到 dto 吗?是否有可能指定储蓄的预测?

0 投票
1 回答
1001 浏览

c# - 在投影中使用 NHibernate 拦截器

我有这种情况:

我正在使用 Nhibernate 映射一个实体“ User ”,该实体“ User ”映射到 Sql 中的一个大表上,出于性能原因,我创建了一个轻量级实体“ LightweightUser ”,它只有一小部分属性并且没有映射到 hbm文件或其他任何东西,我正在使用Nhibernate 投影技术来连接“ LightweightUser ”实体。这两个实体都派生自一个包含 Id 属性的简单类“实体”。

上述实现工作正常,sql 查询更小 == 更快。

但是在我的 Nhibernate SessionFactory 中,我还注入了一个Nhibernate Intercerptor。当我从 NHibernate Dao 获取“ User ”实体时,将调用 Interceptor的OnLoad方法,但是当我从 NHibernate Dao 获取“ LightweightUser ”实体时,不会触发Interceptor (OnLoad 方法)。

这可能与 NHibernate SessionFactory 不知道我的“LightweightUser”实体有关。有没有办法通知 Sessionfactory/Interceptor 我的“轻量级”实体的存在?还是有一些其他技术可以将投影连接到拦截器?是的,我也可以为我的轻量级实体复制“hbm”文件,但这似乎是一种不好的做法。

提前致谢

0 投票
1 回答
1794 浏览

nhibernate - 如何使用 ICriteria Projections 获取嵌套对象

我有这样的数据模型:

要从数据库中获取数据,我这样做:

但是 NHibernate 不会在 hands 属性中加载嵌套对象。它只是给出空值。谁能帮助我如何填充嵌套对象(超过一级深度)。使用预测而不是查询对我来说会更好。注意:在映射中不会有问题,因为当我加载没有任何投影的数据时,它工作得很好。

0 投票
3 回答
2825 浏览

nhibernate - NHibernate:将子实体投影到父属性中会引发异常

我有以下父实体部门,其中包含一组子实体部分

我想将其转换(展平)为以下 DTO

使用以下代码。

但是,我收到以下异常:无法解析属性:Department.Name of: Domain.Section

我什至尝试过以下 LINQ 表达式

映射

但这会抛出一个方法或操作没有执行

寻求有关我做错了什么或遗漏的指导。

0 投票
1 回答
3163 浏览

nhibernate - NHibernate 投影:如何创建 AliasToBean 投影?

我正在尝试将这个低效的查询转换为投射到 dto 的查询。原始查询如下所示:

我试过这样:

我收到一个错误,即变量“x”已在范围内引用但未定义。转换它的正确语法是什么?

在安德鲁的帮助下,这是正确的版本

0 投票
2 回答
1347 浏览

nhibernate - NHibernate 预测:如何将 QueryOver 投影到 int 列表中?

尝试将查询结果投影到整数列表中。如何做到这一点?应该用什么变压器。AliasToBean 不起作用,因为它需要 setter。

0 投票
1 回答
620 浏览

nhibernate - add Nhibernate Projections

Have Employee: BaseEntity class with

and BaseEntity class:

How can I map my entities and /create select like this

I tried like this:

I'am confused, should I somehow use joined table alias for Projections.GroupProperty, rework my mapping/Entity to use only primitive types (string, int) or any other approach?