Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当.hbm文件中存在order by时,Hibernate中的子对象排序有问题吗?_Hibernate_Sorting - Fatal编程技术网

当.hbm文件中存在order by时,Hibernate中的子对象排序有问题吗?

当.hbm文件中存在order by时,Hibernate中的子对象排序有问题吗?,hibernate,sorting,Hibernate,Sorting,我在我们的应用程序中使用了Hibernate3.jar。在尝试使用外键获取一些对象时,我们在集合中使用了order by子句,如下所示 现在我有了一个类,在这个类中我使用Criteria API并强制使用join类获取“children”对象,即在Criteria API中使用fetch=join。但是当我尝试在Criteria API中放置orderby子句时,问题就出现了。它似乎总是从.hbm文件中选择order by子句(如上面的粗体所示)并从criteria api中附加我的新ord

我在我们的应用程序中使用了Hibernate3.jar。在尝试使用外键获取一些对象时,我们在集合中使用了order by子句,如下所示


现在我有了一个类,在这个类中我使用Criteria API并强制使用join类获取“children”对象,即在Criteria API中使用fetch=join。但是当我尝试在Criteria API中放置orderby子句时,问题就出现了。它似乎总是从.hbm文件中选择order by子句(如上面的粗体所示)并从criteria api中附加我的新orderby子句。为什么它会附加,为什么它不会忽略order by from.hbm,而只使用criteria api中提到的一个。如果您编写HQL查询,而不是使用criteria类,是否仍会发生这种情况


我想知道,由于CriteriaAPI调用它“addOrder”而不是“setOrder”,它是否只是从HBM文件继承默认顺序,然后将顺序值“添加”到默认值。但我不确定,我很想知道,如果要编写HQL查询,您是否仍然存在这个问题。

是的,这就是我所看到的Criteria有addOrder而不是setOrder。另外,我在hibernate论坛上查看了一下,这似乎是Hibernate3中的一个bug。使用HQL,这些论坛中提到的bug可能会消失。但是有没有一种方法可以使用Criteria API本身,或者在HBM文件中使用一些过滤器(我尝试过使用它,但得到了糟糕的SQL语法异常)