有没有简单的方法将标准转换为HQL?

问题描述:

几天前我发布了一个question关于使用Criteria API查询集合,以及所有答案后,我看到我正在尝试的事情不符合标准,在nhibernate中也存在一个错误,在休眠有没有简单的方法将标准转换为HQL?

我正在使用DetachedCriteria将所有标准放在一起,列表非常长。链的最后一个圈是越野车的标准,所以我需要改变我所有的detachedcriteria到HQL。

所以我的问题是有没有任何工具或方法将标准转换为HQL。

有什么办法可以让Criteria和Hql一起工作吗?

An Article about the bug in nhibernate

谢谢你是进步

您正在使用什么版本的NHibernate

我已经发送了电子邮件,Ayende Rahien关于这个问题,并感谢他为replying.He说

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

+3

优秀的答案。一个例子会很好... – mark 2009-08-25 12:40:11

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

+0

我使用的是2.0。1 GA,这是最新的我猜 – 2009-02-13 17:11:40

从休眠论坛...不知道重新张贴,如果这是有关NHibernate的或最新


来自:最大的Hibernate团队

发表于:星期日2006年12月24日7时12分

这是一个非常固执的民俗,cr iteria转换为HQL。标准直接到SQL,但没有直接的公共API来以编程方式获得它。

...

翻译两次是不是很有效;)

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

我修改了Hibernate Criteria API以通过尝试保留大部分类似的接口来生成JPQL查询。我的项目名称是Criteria2JPQL在:

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

因为这个翻译是产生一个标准JPQL查询一个简单的内存操作,没有一个相当大的性能问题。另一方面,这个项目的想法起源于Hibernate Critera的不良执行本地sql查询,包括大量不必要的连接。我们在我们公司的项目中使用了Criteria2JPQL,并观察到这些不必要的连接消失了。