问题标签 [icriteria]

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

nhibernate - NHibernate L2 Cache - 流畅的 nHibernate 配置

我已经设法在 FHN 中为 Get\Load 配置 L2 缓存,但它不适用于使用 ICriteria 接口配置的查询 - 它不会缓存这些查询的结果。

有谁知道为什么?

配置如下:

标准:

实体映射:

以及数据库属性的会话工厂配置:

干杯

AWC

0 投票
1 回答
348 浏览

nhibernate - NHibernate:如何使用 Criteria API 排除属于连接的一部分的类

我仍然是 Hibernate 的新手,并且正在尝试将它用于我继承的网站。不幸的是,这意味着有时数据库模式并不总是有意义。

话虽如此,我正在尝试使用 Criteria API 构建以下 HQL 查询

上面的 HQL 语句生成 SQL,它将仅选择并返回 TableB,这正是我想要发生的。但是,使用如下所示的 Critera API 语句,生成的 SQL 语句会选择 TableB 和 TableA 的字段。

在一个完美的世界中,我可以更新数据库模式以使其更有意义,但可惜我不能。对此的任何帮助将不胜感激。

0 投票
1 回答
430 浏览

nhibernate - 了解 NHibernate 的 ICriteria

请有人能用英语解释以下代码的作用吗?

0 投票
1 回答
281 浏览

nhibernate - 使用 ICriteria 接口在 NHibernate 中选择不在集合中的对象

在我的系统中,用户拥有 0 个或多个类别。这是我的模型类的简化版本:

我现在想创建一个 ICriteria 查询来选择所有未分配给用户的类别,但我被卡住了。理想情况下,我不想创建从 Category 到 User 的导航属性,但是根据我对 NHibernate 的初学者知识,这是我能看到的唯一解决方案。

是否有一个 ICriteria 查询可以对当前数据模型类执行此操作?

谢谢你的帮助。

0 投票
1 回答
1932 浏览

nhibernate - NHibernate:实体的查询条件,可能是同一查询中的子类

这是我的 2 个实体的设置:

这是他们的映射的样子:

这就是设置,2 个实体,一个是另一个的连接子类。我有一个搜索框架,它从表单中获取任意数量的条件,然后将适当的条件应用于查询,然后返回结果。

现在假设在这种情况下我有一个表单字段“姓名”——我想通过查看他们的姓名是否与 Person 的 Name 属性匹配来带回所有人,无论是普通的 Persons 还是特殊类别的生物 Immortals,但是对于不朽者,如果他们的 DarkName 与表格中给出的内容匹配,我也想将其视为匹配项。

所以这是我的困境,我该怎么做?我能用 NHibernate 的 ICriteria 做的最好的事情是在 Immortal 上进行子查询以检查那里的名称,然后查看根 Person id 是否在该子查询中。但是,在处理包含 10 多个数千人的表时,这种获取结果的方法非常低效,在我的现实世界中甚至会导致请求超时(30 秒以上)。

我也愿意在 HQL 中执行此操作,因为我想我希望在 Immortal 上进行外部连接以检查该字段,但我无法让 HQL 对任意属性上的 2 个不同实体进行连接——连接至我知道必须基于您的映射中的直接关联。例如,这是我希望看到的:

你说什么stackoverflow?

0 投票
2 回答
305 浏览

nhibernate - NHibernate 实体松耦合

假设我有一个名为 MyItem 的实体。它可以包含在许多“父母”中,例如 SomeCollection 和 SomeOtherCollection。因为它可以包含在许多父母中,并且由于我不希望 MyItem 了解父母,所以我希望 MyItem 中没有任何属性引用父母。

而且由于像 SomeCollection 这样的父级可以包含许多 MyItem,我觉得我需要进行某种分页来从父级获取子级。这将使我无法在 SomeCollection 中拥有引用 MyItems 的属性。无论是否延迟加载,它总是“全有或全无”(对吧?)。

不过,我肯定需要在 MyItem 实体和它们的父实体之间进行一些引用,以数据库中映射表的形式。

问题:

  • 如何为此创建映射?我可以有映射,还是应该将关系保留在业务逻辑中?
  • 如何查询 SomeCollection 中存在哪些 MyItem 实体?我可以只使用 ICriteria 访问一次数据库吗?
0 投票
1 回答
3958 浏览

tsql - 如何使用 NHibernate 的 ICriteria 进行分组、获取关联和 T-SQL 函数

我想创建以下 T-SQL 语句:

NHibernates ICriteria可以做到这一点吗?

如何使用 Month-T-SQL-Function?

我必须手动加入还是 ICriteria API 知道当我使用propetyName 'SalesmanArticle.Article.Goodsgroup.Description' 时它必须加入文章和货物组?

编辑:

现在我在这里写了这段代码:

但是会抛出 AdoException:

无法执行查询 [ SELECT sum(this_.Amount) as y0_, sum(this_.Cost) as y1_, goodsgroup2_.Description as y2_, MONTH([Date]) FROM [SalesmanArticle] this_ inner join [Article] article1_ on this_。 ArticleId=article1_.ArticleId 内连接 [GoodsGroup] goodsgroup2_ on article1_.GoodsGroupId=goodsgroup2_.GoodsGroupId GROUP BY goodsgroup2_.Description, MONTH([Date]) ]

[SQL: SELECT sum(this_.Amount) as y0_, sum(this_.Cost) as y1_, goodsgroup2_.Description as y2_, MONTH([Date]) FROM [SalesmanArticle] this_inner join [Article] article1_ on this_.ArticleId= article1_.ArticleId 内连接 [GoodsGroup] goodsgroup2_ on article1_.GoodsGroupId=goodsgroup2_.GoodsGroupId GROUP BY goodsgroup2_.Description, MONTH([Date])]

奇怪的是 NHibernate 尝试创建 2 个查询?!

而且他们两个都是正确的!

而不是代码行

我用了

SqlFunction 的问题在于它创建了一个 GROUP BY sa.Date 而不是 MONTH(sa.Date)。但是这种方法在语法上是正确的。

所以我切换到 SqlGroupProjection 方法。

但无论如何它不起作用。

有谁能够帮助我?

0 投票
3 回答
2363 浏览

nhibernate - nHibernate 集合和别名条件

我有一个简单的测试对象模型,其中有学校,而学校有学生的集合。

我想检索一所学校及其所有超过一定年龄的学生。

我执行以下查询,获取给定学校和特定年龄以上的孩子:

这一切都很好,我可以看到查询进入数据库并返回预期的行数。

但是,当我执行以下任一操作时,它会通过运行另一个查询为我提供给定学校的学生总数(无论前面的请求如何):

谁能解释为什么?

0 投票
2 回答
2499 浏览

nhibernate - 使用 ICriteria 按 null/not null 排序

我想像这样对我的结果进行排序:

  • 首先,我想要列/属性不为 null的所有行/对象,然后是 colmn/property为 null的所有行/对象。
  • 然后我想按另一列/属性排序。

如何使用 ICriteria 做到这一点?我必须创建自己的 Order 类,还是可以使用现有代码来完成?

我想要这样的订单:

0 投票
1 回答
1029 浏览

nhibernate - NHibernate Projections 来检索集合?

我在检索投影中的字符串集合时遇到了一些麻烦:假设我有以下类

然后,我有一个我想要检索 WorkSet.Title、WorkSet.PartTitles 和 Id 的工作 ID 列表。

我的强项是做这样的事情:

Id 和 Title 加载得很好,但 PartTitles 返回 null。请提出建议!