2009-11-10 86 views
0

我在我們的應用程序中使用Hibernate3.jar。嘗試使用外鍵訪問某些對象時,我們使用集合上的order-by子句,如下所示
< set name =「children」cascade =「all-delete -orphan」懶= 「真」 順序逐= 「SORT_ORDER_ID ASC,低級(CHILD_NAME)遞增,低級(FIRST_NAME)遞增,低級(LAST_NAME)ASC」> 排序在Hibernate中的子對象時遇到.hbm文件中的命令時出現問題?

現在我有一類,其中i是使用Criteria API並強制使用連接類來獲取「children」對象,即在Criteria Api中使用fetch = join。但是當我嘗試在Criteria api中放置orderby子句時,問題就出現了。它似乎總是選擇順序從.hbm文件中的-by子句(如上面粗體顯示)並追加我的新order by子句。爲什麼它追加,爲什麼它不會忽略.hbm中的order by,而只是使用Criteria api中提到的那個。

回答

1

如果您編寫HQL查詢,而不是使用Critiera類,這仍然會發生嗎?

我不知道自Criteria API稱之爲「addOrder」而不是「setOrder」,它只是從HBM文件繼承默認順序,然後將訂單值「添加」爲默認值。但是我不確定,要想知道如果您仍然編寫HQL查詢,是否仍然存在此問題。

+0

是的,這就是我看到Criteria有addOrder而不是setOrder.Also我檢查了Hibernate論壇,它似乎是Hibernate3中的一個錯誤。使用HQL,錯誤可能會消失,正如在這些論壇中提到的那樣。但是在那裏一種使用Criteria API本身或使用某種過濾器的HBM文件的方式(我嘗試過使用它,但得到了不好的SQL語法異常) – Rajat 2009-11-10 20:35:25

相關問題