14

几天前,我发布了一个关于使用 Criteria API 查询集合的问题,在所有答案之后,我发现我正在尝试的事情对于 Criteria 是不可能的,在 nhibernate 和 hibernate 中的情况都有一个错误

我正在使用 DetachedCriteria 将所有标准放在一起,并且列表真的很长。最后一圈链是错误的标准,所以我需要将我所有的 detachedcriteria 更改为 HQL。

所以我的问题是是否有任何工具或方法可以将 Criteria 转换为 HQL。

或者

有没有办法让 Criteria 和 Hql 一起工作?

关于 nhibernate 中的 bug 的文章

4

4 回答 4

3

从休眠论坛重新发布...不确定它是否与休眠相关或最新


来自: max Hibernate Team

发布时间:2006 年 12 月 24 日星期日上午 7:12

这是一个非常顽固的民间传说,标准转化为 HQL。Criteria 直接转到 SQL,但没有直接的公共 api 以编程方式获取它。

...

翻译两次效率不高;)

http://forum.hibernate.org/viewtopic.php?t=968990&view=next&sid=50454aa6cec8d482198117fbd398ca70

于 2009-02-17T03:45:44.810 回答
3

我已经就这个问题向Ayende Rahien发送了一封电子邮件,并感谢他的回复。他说

答案是没有这样的工具,但转换通常很容易。

于 2009-02-17T11:39:48.650 回答
0

我已经修改了 Hibernate Criteria API 以通过尝试保留最相似的接口来生成 JPQL 查询。我的项目名称是 Criteria2JPQL,位于:

https://sourceforge.net/projects/criteria2jpql/

由于此转换是生成标准 JPQL 查询的简单内存操作,因此不存在相当大的性能问题。另一方面,这个项目的想法源于 Hibernate Critera 性能不佳的本地 sql 查询,包括许多不必要的连接。我们曾在我公司的项目中使用过 Criteria2JPQL,并观察到那些不必要的连接消失了。

于 2010-07-10T20:15:06.977 回答
-1

您使用的是哪个版本的 nHibernate?我认为使用最新版本可能会解决您的问题,因为 2.0 GA 有很多重大更改。

于 2009-02-13T15:17:39.623 回答