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

hibernate - Hibernate Criteria - 如何过滤嵌套的孩子?

我担心我之前的问题可能表述得很糟糕,所以为了清楚起见,我重新开始。

想象许多表,每个表之间存在 OneToMany 关联;农场 -> 田野 -> RegionGroup -> 地区。我正在尝试构建一个 Criteria 查询,该查询将在Region.nutrient上进行过滤。我已经看到很多人过滤顶层属性的例子,有时甚至是下一层,但我不确定在过滤四层深度时如何构造查询。目前我有这个,这是行不通的;

发生的情况是生成的主 SQL 查询正确地涵盖了所需的结果(并且正是应该检索的数据集),但是,当您迭代返回的对象时,RegionGroup -> Region的关联执行与每次迭代的子查询不包括限制,因此我得到RegionGroup的所有区域,而与Region.nutrient的值无关;

我需要添加什么才能强制执行针对关联路径“fields.regionGroups.regions”指定的限制?

编辑:下面的 HQL 做了我所追求的,但没有我所追求的定义灵活性,所以我想将它转换为 Criteria 查询;

这给了我一个List<Farm>可以这样迭代的输出;

那么,如何将其指定为条件查询?为了证明它正在做我想做的事情,如果我简单地更改 HQL 并删除对 Region.nutrient 的限制,我会取回每个 RegionGroup 的所有区域;

在没有更改迭代结果的代码的情况下,我现在得到了这个;

0 投票
1 回答
4051 浏览

hibernate - 使用相关实体的主键过滤结果的休眠条件查询

在我们的系统中,我们的数据库如下所示

一个机构有很多券商,一个券商有很多用户,一个用户有很多订单。

我正在尝试使用休眠条件来查找指定经纪商下用户的所有订单。在纯 SQL 中,这将非常容易。我可以在标准 api 中执行此操作吗?我发现条件 api 在单击和过滤类型 uis 时特别有效,因为您可以构建一个无序的限制列表并将它们添加到条件中。

目前我有这个不起作用

我收到消息“引起:org.hibernate.QueryException:无法解析属性:user.brokerage of:com.printlogix.rp.server.domain.UserOrder:”。

你能像“object.parentobject.property”一样将参数名称传递给Restrictions.eq吗?

0 投票
2 回答
1191 浏览

hibernate - 休眠条件查询

我有以下查询 sql 查询:

这是我到目前为止所写的:

如何在第一个括号内写“和”和“或”?

0 投票
4 回答
16676 浏览

java - 限制子项的休眠条件

我有一个要在一个 SQL 语句中执行的 Hibernate 条件调用。我正在尝试做的是选择具有一系列值(SQL IN 子句)中的属性的子级的父级实例,同时使用外连接加载子级。这是我到目前为止所拥有的:

以下是一些示例数据:

如果其中一个孩子的属性等于我的绑定参数,我想要做的是返回父母和他们的所有孩子。假设 properties 是一个包含 {2} 的数组。在这种情况下,调用将返回父级 A 和 C,但它们的子集合将仅包含元素 2。即 Parent[Children]:

A[2] 和 C[2]

我想要的是:

A[0, 2, 7] & C[1, 2 3]

如果这不是一个错误,它似乎是一个损坏的语义。我看不出调用 A.getChildren() 或 C.getChildren() 并返回 1 条记录会被认为是正确的——这不是预测。即,如果我增加查询以使用默认选择提取,它会返回正确的子集合,尽管有大量查询:

这是一个错误吗?如果没有,我怎样才能达到我想要的结果?

0 投票
2 回答
1311 浏览

hibernate - 连接表的休眠条件 - 如何创建?

我只有 3 张桌子,例如:

产品
.---------
id
名称

类别
.---------
id
名称

product_category
.------------------------
p_id
c_id

我想获取产品类别为 id=3 的产品列表。我对如何为此编写一个感到困惑hibernate criteria。任何帮助,将不胜感激。

谢谢

0 投票
2 回答
121 浏览

java - 遵循 SQL 的标准是什么?

任何人都可以帮助我了解以下查询的标准:

我正在尝试以下标准

上述标准检索表数据。

另外,如果我只需要 TableA 中的特定列,标准将如何变化?

谢谢你的时间。

编辑:TableA 与 TableB 具有一对多的关系。

0 投票
1 回答
1884 浏览

hibernate - HIbernate Criteria Restrictions.in

我在使用 Restrictions.in 时遇到了 Hibernate Criteria 的问题。如果发送到限制的列表中没有任何值,那么它会抛出 SQL GrammerException,这是预期的,因为查询看起来像

select * from Person p where p.id in ()

休眠日志错误---

Spring日志错误...

导致它的代码是

我试过这样做,但它会返回表中的所有值,这与我想要的完全相反..当列表大小为 0 时不返回任何内容..

那么我应该在此处进行哪些更改,以便当列表中没有任何值而不是异常时,我不会从查询中得到任何结果......提前致谢!

0 投票
2 回答
1439 浏览

java - 拦截休眠条件查询

我正在使用 Hibernate SessionFactory 从数据库中检索信息。问题是下面的“encrypted_field”数据库字段现在已加密并破坏了 SQL 查询。

这是我试图转换成 Hibernate 的旧 SQL 查询:

有没有办法在 Hibernate 中解决这个问题?我正在考虑一些 Hibernate 拦截器,它允许我在 Hibernate 将“order by”标准应用于 ResultSet 之前解密“encrypted_field”。这可能吗?

0 投票
1 回答
1133 浏览

java - Hibernate:如何将此条件重写为 HQL?

我想写 HQL,在那里我会发现 Company 是否有带有某些名字的 Persons(employees)。我已经用标准做到了这一点:

现在,我希望 HQL 也一样。我正在使用命名查询,但我无法将数组或字符串列表(或任何内容)作为命名查询的参数传递。这是我的尝试,这不起作用atm。

我收到 ClassCastException

这很正常,因为我为查询参数名称指定了错误的类型。我不知道该放什么:/

测试用例以更好地理解此服务:

这意味着,“jon”或“josh”在 someCompany 工作。

感谢帮助

编辑

JB Nizet 为 service.namesInCompany 提出了代码。这里是:

0 投票
2 回答
2382 浏览

grails - GORM:ilke和inList组合

在 Grails 中,使用 DynamicFinder 我们如何使用 ilike 和 inList 执行查询?或者我们可以使用 CriteriaBuilder 将 ilike 和 inList 结合起来吗?谢谢!