執行hibernate報錯“node to traverse cannot be null”問題的解決

今天在學習 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());

希望能對小夥伴們有所幫助

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章