今天在学习 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());
希望能对小伙伴们有所帮助