问题标签 [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 投票
1 回答
756 浏览

nhibernate - 如何按 Criteria API 中的计算列对记录进行排序?

如何使用 Criteria API 编写以下 HQL 查询?

0 投票
2 回答
13239 浏览

java - 在 JPA Criteria API 查询中使用 countDistinct 的示例

我无法弄清楚如何表示以下 JPQL 查询:

使用标准 API。我正在尝试的是:

但这不起作用。我也试过:

这适用于 JPA2,Eclipselink。

0 投票
3 回答
14231 浏览

java - 使用 Criteria API (JPA 2.0) 创建查询

我正在尝试使用 JPA 2.0 中的 Criteria API 创建一个查询,但我无法使其工作。

问题在于“介于”条件方法。我阅读了一些文档以了解我必须如何做,但是由于我发现了 JPA,我不明白为什么它不起作用。

首先,我看不到写“Transaction_”时应该出现的“creationDate”。

我认为这可能是正常的,因为我读到元模型是在运行时生成的,所以我尝试使用 'Foo_.getDeclaredSingularAttribute("value")' 而不是 'Foo_.value',但它仍然根本不起作用。

这是我的代码:

有人可以帮我解决这个问题吗?谢谢。

编辑:这是事务源(其中几乎没有,因为它是由 Netbeans 从我的数据库自动生成的)

0 投票
2 回答
4803 浏览

java - 使用被询问实体的子实体的信息对 Hibernate Criteria 查询的结果进行排序

我有两个实体 Person 和 Book。只有一个特定书籍的实例存储到系统中(添加书籍时,应用程序会在向数据库添加新行之前检查是否已经找到该书籍)。实体的相关源代码如下:

我的问题是我想找到拥有特定人拥有的某些书籍的人。返回的人员列表应该使用以下逻辑排序:拥有最多相同书籍的人应该在列表的第一位,列表的第二人没有第一人拥有的书籍数量,但超过第三人称。执行此查询的方法的代码添加如下:

我的问题是这可以通过使用 Hibernate 来完成吗?如果是这样,怎么做?我知道我可以实现一个比较器,但我更喜欢使用 Hibernate 来解决这个问题。

使用 SQL 时,我想要的结果可以通过使用以下 SQL 查询来实现:

我一直在试图弄清楚如何将其转换为 Criteria 查询。我一直在尝试使用 Projections,但我似乎无法将结果映射回 Person 对象。

0 投票
4 回答
771 浏览

nhibernate - NHibernate 的问题

我正在尝试获取共享该类别的产品列表。

NHibernate 不返回错误的产品。

这是我的标准 API 方法:

这是我的 HQL 方法:

这两种方法在应该返回 2 个产品时都不返回任何产品。

这是 Product 类的映射:

最后是 Category 类的映射:

你能看出可能是什么问题吗?

如果我删除添加行我的查询是:

现在看着我的监视窗口,我返回了 5 个附加了类别的产品。我在初始查询中查找的类别名称出现在 2 个产品上。

所以当我添加行时出现问题: .Add(Restrictions.Eq("Name", name))

这是生成的 Sql,包括 Restriction 行:

NHibernate: 选择 this_.ProductId 作为 ProductId23_1_, this_.RowVersion 作为 RowVersion23_1_, this_.ProductName 作为 ProductN3_23_1_, this_.BasePrice 作为 BasePrice23_1_, this_.IsTaxable 作为 IsTaxable23_1_, this_.DefaultImageFile 作为 DefaultI6_23_1_, categories3_.ProductId 作为 ProductId, category1_.CategoryId 作为, category1_.CategoryId as CategoryId16_0_, category1_.RowVersion as RowVersion16_0_, category1_.Name as Name16_0_, category1_.IsDefault as IsDefault16_0_, category1_.Description as Descript5_16_0_, category1_.ParentID as ParentID16_0_ FROM Products this_inner join Categories_Products categories3_ on this_.ProductId=categories3_。 ProductId 内连接 Categories category1_ on categories3_.CategoryId=category1_.CategoryId WHERE category1_.Name = @p0; @p0 = '动量'

0 投票
3 回答
4045 浏览

java - Criteria API 中是否有类似 Restrictions.eq(true, false) 的内容?

我需要一个Criterion将结果强制为零匹配的泛型。

Restrictions.eq(true, false)什么?

0 投票
7 回答
14956 浏览

java - Hibernate Criteria API - 添加一个标准:字符串应该在集合中

我必须关注实体对象

现在我想做一个标准查询,它将获取所有 Foobar pojos,其 uuids 列表包含字符串“abc123”,我只是不确定如何制定适当的标准。

0 投票
1 回答
393 浏览

nhibernate - 如何在包括原始实体的同时检索一对多关系的行数?

假设我有两个实体FooBar其中Foohas-manyBar的,

如何使用单个查询有效地总结 DTO中Barsper的数量,最好仅使用 Criteria 接口。Foo

我尝试了多种方法来使用“SetProjection”从查询中获取原始实体,但没有运气。目前的理论是做类似的事情

但是有了标准,我似乎无法弄清楚如何。

0 投票
1 回答
2721 浏览

nhibernate - 使用 Criteria API 在 NHibernate 中急切地加载集合

我有一个实体 A,它有许多实体 B 和实体 C。所有实体 A、B 和 C 都有一些引用 x、y 和 z,应该立即加载。

我想从数据库中读取所有实体 A,并使用标准 API 急切地加载 B 和 C 的集合。到目前为止,我能够急切地获取“A”中的引用。但是当集合被加载时,它们中的引用被延迟加载。

这是我的做法

使用 Fluent 对实体 A 的映射如下图所示。_B 和 _C 分别是 A 中 B 和 C 的私有 IList。

我不想更改映射文件,并且想急切地加载整个实体 A。即我应该得到一个 A 的列表,其中会有 B 和 C 的列表,它们的参考属性也将被急切地加载

0 投票
4 回答
6669 浏览

java - 可以使用同一个 CriteriaBuilder (JPA 2) 实例来创建多个查询吗?

这似乎是一个非常简单的问题,但我还没有找到明确的答案。我有一个 DAO 类,它自然地使用标准查询来查询数据库。所以我想知道使用相同的 CriteriaBuilder 实现来创建不同的查询是否安全,或者我是否必须为每个查询创建新的 CriteriaBuilder 实例。以下代码示例应该说明我想要做什么:

这样做可以吗?