问题标签 [hibernate-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 投票
22 回答
152973 浏览

java - JPA 和 Hibernate - 标准与 JPQL 或 HQL

使用CriteriaHQL的优缺点是什么?Criteria API 是在 Hibernate 中表达查询的一种很好的面向对象的方式,但有时 Criteria Queries 比 HQL 更难理解/构建。

您什么时候使用 Criteria,什么时候使用 HQL?在哪些用例中你更喜欢什么?还是只是口味问题?

0 投票
1 回答
5813 浏览

java - Hibernate 的 Criteria API 是否仍然不支持嵌套关系

我想将 Hibernate 的 Criteria API 准确地用于每个人所说的可能是它最可能的用例,应用复杂的搜索条件。问题是,我要查询的表并不完全由原始值组成,而是部分来自其他对象,我需要查询这些对象的 id。

我发现这篇2 年前的文章表明这​​是不可能的。这是我尝试它的方法,但没有成功,Hibernate 的其他方面我知道在字符串文字中支持这种点表示法以指示对象嵌套的位置。

编辑:

这是我使用下面第一个答案的建议来完成我上面尝试的正确分解代码;请注意,我什至使用了额外的 createCriteria 调用来对另一个关联对象/表中的属性进行排序:

0 投票
1 回答
1116 浏览

hibernate - 使用 Criteria Builder 以另一种方式查询一对多

假设我有以下一对多关系:

我已经建立了这样的关系

基本上我想更新特定站点上特定用户的用户名并返回用户对象。我知道站点和新用户名,所以我有一个函数尝试使用标准构建器查找相应的连接:

我得到一个类似于以下的异常:

使用 Criteria Builder 可以做到这一点吗?我意识到我可以用另一种方式进行查询,在那里我从站点到用户建立标准,但是我必须遍历站点的所有用户,以找到与我要更新的数字匹配的用户。我只需要使用 HQL 查询吗?

0 投票
5 回答
5859 浏览

java - Criteria API 返回的结果集太小

这怎么可能,我必须遵循标准

列表的大小现在是 20。如果我在标准中添加一个最大结果,

.. 现在列表的大小是 18!

我不明白定义最大结果后结果集大小如何变小,因为行数小于定义的最大值。这肯定看起来像一个错误,还是我不知道休眠的一些奇怪方面?


如果您正在寻找此问题的答案,请务必阅读已接受的答案及其评论。

0 投票
3 回答
38281 浏览

hibernate - Hibernate Criteria: Left Outer Join 对两个表都有限制

我正在做一个 LEFT OUTER JOIN,但我只能在第一个表上应用限制。有没有办法也适用于第二张桌子?

这是我的代码:

这有效(申请人有一个申请人名称属性):

这些都不起作用(产品具有 productName 属性)

criteria.add(Restrictions.eq("products.productName", "product1") // products: 属性的名称 criteria.add(Restrictions.eq("Product.productName", "product1") // Product: the数据库表的名称

这是我收到的例外情况(如果我理解正确的话)申请人中不存在 productName 属性:

我尝试使用别名,但这会生成一个 INNER JOIN,而不是我想要的 LEFT OUTER JOIN。

如何对两个表应用限制?

更新:

问题可能与此相同: https ://forum.hibernate.org/viewtopic.php?p=2393694

0 投票
2 回答
710 浏览

java - 我如何创建一个 Hibernate Criteria 以按集合的某些属性排序

说,我有一个实体,它有一个集合的操作历史。我想按最新操作的日期对实体进行排序(这是历史的第一个元素)。

我想做这样的事情:

这可能吗?

0 投票
3 回答
5245 浏览

java - 如何从标准中删除标准?

例如,如果我做类似的事情:

如何使用相同的条件实例,但删除(例如)第二个条件?我正在尝试构建一个动态查询,我想让用户在其中删除过滤器,而后端不必从头开始重建条件。

谢谢

0 投票
5 回答
8383 浏览

hibernate - Grails:标准构建器中嵌套关联的问题

我对标准构建器有一个令人沮丧的问题。我有一个应用程序,其中一个用户有一个日历,一个日历有很多条目。看起来很简单,但是当我尝试获取给定用户的日历条目时,我无法访问用户属性(MissingMethodException)。这是代码:

我什至尝试过以下变体:

这没有引发异常,但也没有工作。

以下是域类的相关部分:

谷歌搜索时,我遇到了 2008 年初注意到的类似问题:http: //jira.codehaus.org/browse/GRAILS-1412

但是根据那个链接,这个问题应该早就解决了。

我究竟做错了什么?

0 投票
3 回答
14272 浏览

java - 休眠条件——别名

我在 Hibernate 中的别名概念上有点挣扎。
我的情况如下:
订单

订单详情

所以我想搜索每个包含产品的订单。
但是,通过此查询,它不断返回 0 个订单,我真的不知道我做错了什么。
谢谢!

0 投票
2 回答
427 浏览

c# - 选择确切类的所有实体,但不是使用 NHibernate Criteria API 从它派生的

我有两个类:CatDomesticCat,扩展Cat

我想选择所有Cats,但没有一个DomesticCat。如何使用 NHibernate 标准 API 做到这一点?