问题标签 [nhibernate-criteria]

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 投票
3 回答
12233 浏览

nhibernate - 使用 NHibernate 查询

我是 NHibernate 的新手,我正在尝试学习如何查询我的数据。

下面是配置xml。仅显示配方。

我希望能够从输入的关键字和成分名称的成分中按配方标题查询食谱。

例如,您可以输入“pasta wine”。

这是我尝试过的,但给了我一个错误。

我也想急切地加载收藏。

我要查询对吗?我需要能够根据我的搜索条件构建查询字符串。这在 SQL 中对我来说很容易。

马尔科姆

0 投票
1 回答
7001 浏览

nhibernate - NHibernate - 使用 Criteria API 对整数列进行 LIKE 搜索的最简单方法?

我正在尝试对整数列进行类似搜索,我需要做的实际上是将列转换为 varchar,然后进行类似搜索。这可能吗?使用 Criteria API 最简单的方法是什么?

0 投票
1 回答
957 浏览

performance - NHibernate 标准查询与 LINQ to NHibernate

我了解您无法在 LINQ to NHibernate 中表达您可以使用 NHibernate Criteria 的查询。但是,就性能而言,可以安全地假设使用 NHibernate Criteria 通常比 LINQ to NHibernate 更好吗?

0 投票
2 回答
69 浏览

nhibernate - 或标准中的陈述

我有一个连接到用户表的订单列表。每个订单可以包含多个用户。

然后我有一个搜索区域,管理员可以通过搜索例如姓氏来搜索所有订单。

如果完成了对例如 Smith 的搜索,则应显示名为 smith 的用户的所有订单,但是如何使用 NHibernate 和 Criterion 完成此操作?

我第一次尝试(用户是用户列表):

crit.CreateCriteria("Users").Add(Restrictions.Like("LastName", Users))

但没有成功。

0 投票
1 回答
1347 浏览

c# - NHibernate: how to express a specific "group by" query with criteria

Question:

What are the criteria/projections that can generate a following query?

#xA;

(Obviously this one is easier with DISTINCT, but I'll need counts later, when I fix this one).


My approaches:

My main problem here is with constants, because if I use

#xA;

I get

#xA;

which is kind of obvious from NH source code, but useless. And if I do

#xA;

then I get

#xA;

where question marks seem to be some unresolved parameters, but I have no idea why.


More details:

I just found

#xA;

The type of groupByString looks extremely suspicious.

0 投票
1 回答
737 浏览

oracle - 我可以在不使用 where 子句的情况下创建自定义表达式吗?

虽然我已经在上一个问题中使用本机查询解决了这个问题。我现在想知道是否可以在不使用 where 子句的情况下创建可在 Criteria 中使用的自定义表达式?我不想要 where 子句的原因是 Oracle 的connect by ... start with ...( here ) 语句。我按照这个页面开始我的工作。但是,这将生成类似select * from foo where connect by start with...的代码

这是我正在使用的。查看生成的内容,我可以说它正在生成正确的语句减去 where 子句。

我正在这样使用它。

我感觉这与.Add()DetachedCriteria 中的有关,但不是 100% 肯定。不幸的是,我似乎找不到太多关于创建自定义表达式的文档。

编辑:现在我想它看起来好像我在叫错树。虽然这并不重要(我已经有了一个不错的实现)。我仍然有兴趣了解如何进一步自定义 NHibernate。

编辑 2:由于开箱即用的 NHibernate 不支持 Oracle 的专有功能,start with ... connect by. 我正在尝试通过添加对 NHibernate 的本机支持来了解有关扩展 NHibernate 的更多信息。我知道我可以使用自定义方言注册这些功能。但我想知道是否可以将它作为标准来实现,以便我可以将它与我的其他标准查询一起使用。我发布的代码工作正常并且正确地创建了有效的 SQL,但是当我将 StartWithConnectByCriteria 添加到我的条件时,NHibernate 将发出一个查询,例如select this_.id from table where start with ... connect by. 这是一个无效的查询,因为该子句不属于 where。

这是我希望 NHibernate 生成的查询。

请注意此查询中没有where子句。但是,start with ... connect by仍然可以与where clause. 您可以在此处阅读有关这些关键字如何工作的更多信息。

0 投票
1 回答
199 浏览

nhibernate - 如何使用 NHibernate 标准查询来加载基于附加条件的关联

假设我有一只猫,它有两个属性:

  • 最喜欢的小猫
  • SecondFavoriteKitten

这些小猫是根据他们的等级来区分的。

加载猫时,我希望排名为“1”的小猫成为FavoriteKitten,排名为“2”的小猫成为SecondFavoriteKitten。

底层数据库如下所示:

我的映射看起来像:

我的条件查询看起来像

问题是一旦加载,FavoriteKitten 和 SecondFavoriteKitten 都是同一只小猫:等级为“2”的小猫。

我是否遗漏了一些标准?还是我以错误的方式解决这个问题?

0 投票
3 回答
1633 浏览

nhibernate - 在属性名称中使用不带字符串的 NHibernate 限制

创建条件时,您可以添加适用于属性的限制。有两种创建限制的方法:

Restrictions.Eq(string propertyName, object value)
或者
Restrictions.Eq(IProjection projection, object value)

问题是,我不喜欢将属性名称作为字符串传递,因为如果它们发生变化,我的项目将照常编译,任何可能的命名不匹配只会在单元测试期间发现。我正在尝试实现 TDD,但它不会很快发生,所以我试图限制单元测试的依赖关系以检查错误(直到我们设法接受 TDD)。

有任何想法吗?提前致谢!

0 投票
1 回答
1341 浏览

nhibernate - NHibernate - 如何编写此查询:选择父母并为每个匹配条件的父母查找孩子

好的,首先我的简单域模型是 2 个具有一对多关系的类,一个简单的父 -> 子关系。一条“推文”有一个或多个“投票”,但每个投票只属于一个推文等。

我正在尝试在 HQL、ICriteria 或 NHibernate LINQ 中编写一个查询,该查询选择所有推文,但还添加两列选择:

  • 计算票数,然后...
  • 特定用户是否根据特定 TwitterUserId 为该推文投票

有了两个额外的列,我不希望得到 Tweet 域对象,并且可能需要运行 Report 查询,这没关系。但我正在努力弄清楚如何编写这个查询。

我知道如何将其编写为存储过程,或使用 LINQ 2 SQL。如果有帮助,我会将其表示为 LINQ to SQL 查询。

我知道这将在 LINQ 2 SQL 中工作,并生成相当有效的 T-SQL,但我不知道如何在 NHibernate 中编写它。


更新:我尝试使用为 NHibernate v2 构建的 NHibernate LINQ 提供程序在 NHibernate 中运行上述 LINQ 查询,例如:

但它没有用。Nhibernate 3.0 中的 LINQ 支持是否得到改进?我有点不愿意使用 3.0 版,因为它仍然是 alpha 版,但如果这可行,那么我可能会试一试。


更新 2:感谢 Diego Mijelshon 的建议,我升级到 NHibernate 3.0 alpha 2 并在 LINQ 中编写了查询:

0 投票
1 回答
128 浏览

c# - 如何在不使用分离条件的情况下通过 nhibernate 中的属性计数进行查询?

嘿伙计们,我正在使用 NHibernate 版本 2.1.2.4000。

实体

所需的(伪)查询

问题

如何使用 NHibernate 标准 API 进行上述查询?

理想情况下,我希望能够做这样的事情(没有子查询,没有分离的标准):

以上是否可能以某种方式?

干杯!