问题标签 [criteria-api]

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

hibernate - Hibernate Criteria API - 如何按集合大小排序?

假设我有类用户和用户组。有一个可选的 1-many group 到用户关联,并且关联从双方映射(UserGroup 侧通过名为“members”的属性,这是一个 HashSet,User 侧通过属性“group”)。

使用 Criteria API,我如何查询所有组,按组成员数排序?

(编辑)当我问这个问题时,我应该指出分页是在 SQL 中执行的,所以如果可能的话,排序也应该在 SQL 中执行。

0 投票
1 回答
5237 浏览

c# - 使用 NHibernate Criteria API 选择特定的数据集和计数

我为 NHibernate 的持久性设置了以下域: 领域

我使用 PaperConfiguration 作为根聚合。

我想为给定的 Tier 和 AcademicYearConfiguration 选择所有 PaperConfiguration 对象。根据以下示例,这非常有效:

(也许有更好的方法来做到这一点)。

然而,还需要知道每个 PaperConfiguration 有多少 ReferenceMaterials,我想在同一个调用中得到它。避免 HQL - 我已经有一个 HQL 解决方案。

我知道这就是预测的目的,这个问题提出了一个想法,但我无法让它发挥作用。

我有一个 PaperConfigurationView ,而不是IList<ReferenceMaterial> ReferenceMaterialsReferenceMaterialCount 并且正在考虑

不幸的是,这不起作用。我究竟做错了什么?

以下简化查询:

创建了这个相当出乎意料的 SQL:

上述查询因 ADO.NET 错误而失败,因为它显然不是正确的 SQL,因为它缺少 group by 或计数为 count(referencem1_.Id) 而不是 (this_.Id)。

NHibernate 映射:

0 投票
1 回答
3322 浏览

nhibernate - NHibernate Criteria using Projections for Substring with in 子句

我在 Oracle 中有一个场景,我需要将列的子字符串部分与值列表匹配。我正在使用 sqlfunction 投影在所需列上应用子字符串,并将该投影添加为 In 子句限制的一部分。以下是我为此编写的简化标准。

我遇到的问题是生成的 SQL 是错误的,其中为语句注册的参数数量超过了语句实际使用的数量,并且即使未使用某些参数也会重复。这会导致语句失败并显示消息 - ORA-01036:非法变量名称/编号。生成的查询

p2 和 p3 再次生成并且是 p0, p1 的副本,因此整个查询都失败了。

我可以通过用公式映射新属性来临时解决这个问题,但我认为这不是正确的方法,因为即使我不需要评估子字符串,公式也会始终执行。

关于与 In 子句组合使用时投影是否正常工作的任何建议,当我使用 Equal Restriction 而不是 In 时,相同的投影工作正常。

0 投票
1 回答
3379 浏览

java - 使用 Hibernate Criteria API 查询具有投影的多对一关系

我正在尝试在以下场景中使用 Criteria API:

  • 我有两个表,Schedule并且Route(带有它们的类和映射)。
  • Route与 具有多对一关系Schedule
  • Route有一个整数属性sequence

现在我需要获取所有关联的 Route 对象满足以下条件的 Schedule 对象:

我已经尝试了以下标准代码:

但它会生成以下 sql:

并抛出以下错误:

如果您有任何建议,请帮助我。

0 投票
1 回答
348 浏览

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

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

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

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

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

0 投票
2 回答
867 浏览

java - 将包含 elements() 的 HQL 查询转换为 Criteria API

我在将以下 HQL 查询转换为 Criteria API 时遇到问题,我想知道是否可以从你们那里得到一些帮助

换句话说,我想在 id 等于 ? 的 Bar 实例中获取 Bar 引用的所有 Foos。

编辑:请注意,我在实体之间没有双向关系,因此 Foo 不知道哪些 Bars 引用了它。其次,从 Bar 到 Foo 的引用是 ManyToMany 类型。

0 投票
1 回答
1706 浏览

nhibernate - NHibernate 投影:如何使用带有投影的 Criteria API 获取类型化类型

如何获得 List<ProductRow> 类型的结果?

我看到有一个函数 Projection.Cast,但我没有看到任何关于如何使用它的文档。

0 投票
2 回答
934 浏览

nhibernate - 子集合中的 setfirstresult 和 setmaxresult

我有和实体让我们称之为它Entity,和一个Child集合Children。我有一个用户拥有Entity信息的屏幕和一个包含集合的列表Children,但是该集合可能会变得非常大,所以我正在考虑使用分页:获取前 20 个元素,只有在用户使用时才延迟加载下一个明确按下下一个按钮。

所以我在实体存储库中创建了一个带有这个签名的函数:

我需要使用 setfirstresult 和 setmaxresult,而不是在聚合根实体中,而是在子集合中。但是当我使用这两种配置时,它们总是引用 HQL/Criteria 查询的实体类型。

其他替代方法是为该Child类型创建一个 HQL/Criteria 查询,设置最大值和第一个结果,然后过滤实体子集合中的那些(通过使用子查询)。但我无法做这个过滤器。如果它是双向关联(子引用父实体)会更容易。

有什么建议么?

任何

0 投票
1 回答
1963 浏览

sql - 仅从连接表中选择列而不需要连接

鉴于这些表:

是否可以使用 HQL/标准 API 来构建一个查询,该查询会产生以下 SQL:

我已经尝试了这两种方法:

但是这两种方法都坚持生成一个连接(或者在使用条件时因为连接不存在而失败),导致 SQL 如下:

有没有办法让 NHibernate 生成一个查询,只从连接表中选择列,而不需要连接?

0 投票
2 回答
9721 浏览

java - 使用 Criteria API 的动态 JPA 2.0 查询

我有点卡住了使用 JPA 2.0 的 CriteriaBuilder 构建动态查询。

我猜我有一个很常见的用例:用户提供任意数量的搜索参数 X 来连接和/或连接:比如:

CriteriaBuilder 的 Method or 不是动态的:

谓词或(谓词...限制)

想法?样品?