问题标签 [queryover]

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

nhibernate - 在复杂对象图上使用 Queryover API 进行 NHibernate Eager Loading

我有一个非常复杂的对象图,我想一举加载。

样本有日日志,日日志测试有日日志结果

Daylog 测试有 Testkeys,Daylog Results 有 Resultkeys,TestKeys 有 Resultkeys。

我正在使用 QueryOver API 和 Future 将所有这些作为一个查询运行,并且 NHibernate 实例化整个图形所需的所有数据都将被返回,由 NHProf 验证。

然而,我仍然使用代理来表示 Testkey 和 ResultKey 之间的关系,即使我专门加载了这种关系。

我认为这整个查询可能代表对 QueryOver API 的理解不足,所以我想要关于它的任何和所有建议,但主要是,我想了解为什么我得到一个代理而不是稍后的结果列表我尝试获取 daylogresult.resultkey.testkey.results。

有什么帮助吗?

0 投票
3 回答
2849 浏览

nhibernate - 使用 nhibernate(和 queryover)急切地获取多个嵌套关联

我有一个具有多个嵌套关联的数据库。基本上,结构如下:

我需要根据在某个日期售出的所有订单生成一份报告,该报告需要遍历所有提到的关联才能生成所需的信息。

尝试将所有表连接在一起将是一种矫枉过正的做法,因为考虑到它将 6 个表连接在一起,这将导致具有许多冗余数据的非常大的笛卡尔连接。下面的代码:

上述方法有效,但即使是几个订单,每个订单都有几个订单项目,以及每个包含多个曲目的播放列表,结果将爆炸到数千条记录,随着每个额外的订单呈指数增长。

知道什么是最好和最有效的方法吗?我目前尝试启用批量加载,这大大减少了数据库查询的数量,但在我看来仍然不是一个好方法,但更像是一种“简单的解决方法”。

鉴于数据量巨大,无需在一个 SQL 查询中加载所有数据。我猜每个关联的一个 SQL 查询将是完美的。理想情况下,首先获取所有订单,然后获取订单的所有订单项目并将它们加载到相关的集合中,然后是每个订单项目的播放列表,依此类推。

此外,这不必专门在 QueryOver 中,因为我可以访问.RootCriteria和使用 Criteria API。

任何帮助将不胜感激 !

0 投票
3 回答
7043 浏览

nhibernate - 带有 Join 和 Distinct 的 QueryOver

我使用以下 QueryOver:

这将创建:

但我想要

我想选择联系人的所有属性。

最好的问候,托马斯

0 投票
1 回答
1849 浏览

sql - Sql 到 NHibernate QueryOver

如何将此 SQL 转换为 NHibernate QueryOver ?

0 投票
2 回答
1992 浏览

c# - 使用 Fluent nHibernate 通过属性过滤对象子集合

请原谅我的无知,我是 nHibernate 的新手,并且在尝试使用 nHibernate 查询过滤子集合时遇到概念问题

我的对象模型包含两个实体 User 和 Task 设置如下

我对这些的 nHibernate 映射如下

我的数据库有两个表“任务”和“用户”,我已经填写了它们

我想要做的是运行一个查询,该查询返回一个特定用户,该用户只有其“任务”集合中的活动任务

当我执行此查询时,我希望在其 Tasks 集合中取回一个包含 3 个 Task 对象的单个用户对象,而不是我得到的是同一个任务对象 (task.Id = 3) 的 3 个副本,所有这些副本都包含所有 5 个任务他们各自的收藏。

我正在尝试做的事情实际上是否可行,或者我应该只是在 Task 实体上进行查询?

我希望情况并非如此,因为能够只看到用户的活动任务而不必搞乱手动过滤会很好。

0 投票
1 回答
1222 浏览

nhibernate - NHibernate QueryOver<> 问题返回子实体的父集合

我有一个父实体 Category_Types 和一组子实体类别 这些子实体中的每一个都有一组子实体费用:

Category_Types >> 类别 (1:n), 类别 >> 费用 (1:n)

我想查询特定日期之间特定 Category_Type 的总费用到以下未映射的类中

我有以下 sql 查询:

所以我使用 QueryOver<> 编写了一个查询来获得与 sql 查询相同的结果,并将结果放入 EntityTotals<> 类中,如下所示:

当我测试这个查询时,它给了我以下异常:

无法解析属性:ct of:费用

所以我试图只将 Category_Types 的一些属性放入以下未映射的类中

使用以下查询仅获取 Category_Types 的属性 Cat_Type_Id 并且它工作正常:

那么如何从第一个查询中获取 Category_Types 的完整对象?

谢谢 ;

0 投票
2 回答
676 浏览

nhibernate - 在 NHibernate QueryOver 语法中使用 current_timestamp

除了 SQL 和 HQL 之外,是否可以在任何其他 nhibernate 查询方法中请求使用 current_timestamp?

我正在考虑制作某种类型的 IUserType 类的 DbDateTime 或其他东西来解决问题,但不知道如何完成它。

有人有想法么?

我想要的例子:

0 投票
2 回答
18479 浏览

c# - 带有条件的 Nhibernate QueryOver 左外连接

我在网上找到了一些资源,但还没有真正能够解决这个问题

基本上我有一个查询,上面有两个左外连接

这可能是一种无效的方法,但它似乎没有中断。现在我想要做的是在两个表上留下了外连接,我想确保这两个表中的 Deleted 列都是错误的。

但是,每当我添加该限制时,结果仅在填充新闻帖子中的外键列时返回,但由于这是可以为空的以及为什么我将其设为左外部连接,所以这是不可取的。

基本上制作它的最佳方法是什么

我已经研究过多重查询、期货和析取,我不确定应该采取什么方法,显然我可以想到几种方法(我的直觉告诉我的坏方法),但正确的方法是什么?:)

谢谢

编辑 - 接受的答案修改

0 投票
2 回答
1158 浏览

join - 如何在 NHibernate 3 中实现搜索查询(使用 NHibernate.Linq)

我正在尝试使用 NHibernate 构建一个搜索查询,该查询将过滤来自几个不同表的参数,并产生可以利用 NHibernate 延迟加载的稍微合理的 SQL。Fromm 在线阅读各种提示,似乎最新最好的方法是使用 QueryOver 对象有条件地添加正在使用的参数,如以下代码段所示:

(一个事件有一个外键到站点)

我有两个问题:如何过滤子对象,而不仅仅是父对象?上面的示例代码为我提供了具有匹配事件的所有站点,但在该站点中,我只想要匹配事件。如果我应该使用联接或子查询,如何?我对通过连接或子查询进行延迟加载来维护我的树状层次结构感到困惑。

编辑:这已经回答了。谢谢普苏萨! 如何添加 or 子句?我找到了对 Disjunction 对象的引用,但使用 QueryOver 方法似乎无法获得该引用。

编辑:我想生成一个按站点条件过滤的站点列表(顶级对象),并且每个站点都应该有按事件条件过滤的事件列表。

我希望它生成如下 SQL:

0 投票
1 回答
4421 浏览

nhibernate - 使用 NHibernate QueryOver,如何在日期之间添加类型安全的限制

考虑以下QueryOver(季度和中心是传入的变量):

此查询完美运行,但我想更改以下限制以删除魔术字符串:

以下是实体(为简洁起见):

那么使用新的 QueryOver 扩展的类型安全方法是什么,可以让我删除这些魔术字符串?