今天在學習 hibernate 的過程中遇到這樣一個問題node to traverse cannot be null
報這種錯,一般情況就是HQL 語句有問題,這時候需要仔細檢查下的HQL 是否符合HQL語法的標準
在這裏上一下樓主的代碼:
List list3 = session.createQuery(" distinct c from Customer c left outer join fetch c.orderSet ").list();
我們在使用HQL語句的時候,以查詢爲例可以從from 直接寫起,這種情況僅限於 select * from 的情況,當 from 關鍵字的前面還有別的內容的時候,我們需要完整的寫HQL語句。
有興趣的同學可以看一下createQuery(queryString)的源碼,是如何處理你傳入的 HQL 語句的
當樓主把HQL修改正常之後,代碼就能正常執行了
// 去重後的左外連接
List list3 = session.createQuery(" select distinct c from Customer c left outer join fetch c.orderSet ").list();
System.out.println(list3.size());
希望能對小夥伴們有所幫助