Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
Java 获取嵌套异常为org.hibernate.hql.ast.QuerySyntaxException的错误:应为联接的路径_Java_Hibernate - Fatal编程技术网

Java 获取嵌套异常为org.hibernate.hql.ast.QuerySyntaxException的错误:应为联接的路径

Java 获取嵌套异常为org.hibernate.hql.ast.QuerySyntaxException的错误:应为联接的路径,java,hibernate,Java,Hibernate,我刚开始冬眠,我有一个疑问 select * from Losa_App a inner join os_historystep os on a.app_ref_no = os.ref_id where os.step_name = '011' and app_status = 'R' or app_status = 'S' ; 当我在sqldeveloper上运行这个查询时,它会运行并给出结果。现在我将查询翻译成类似HBL的语言 StringBuf

我刚开始冬眠,我有一个疑问

 select * from Losa_App a
 inner join 
     os_historystep os
 on
     a.app_ref_no = os.ref_id
 where 
     os.step_name = '011' and app_status = 'R' or  app_status = 'S' ;
当我在sqldeveloper上运行这个查询时,它会运行并给出结果。现在我将查询翻译成类似HBL的语言

StringBuffer query = new StringBuffer();
    List<String> lstObj = new ArrayList<String>();
    query.append(" from ");
    query.append(getClassName());
    query.append(" a inner join "
            // + WflWorkflowHistoryStep.class.getName()
            + " OS_HISTORYSTEP os with a.appRefNo = os.ref_id "
            + "where os.step_name = '011' and a.appStatus = 'R' or a.appStatus = 'S'  ");

    List<LosaApp> result = null;

    try {

        result = getHibernateTemplate().find(query.toString());
        if (CollectionUtils.isNotEmpty(result) {
            return result;
        }

    } catch (Exception e) {

        String message = e.getMessage();
        System.out.println();

    }

    return null;
为什么我会犯这个错误


谢谢

您的HQL语法错误

  • 您需要使用关键字
    作为
    指定别名。例如:-Losa\u应用程序作为一个
  • 如果您提供了
    内部联接
    ,并完成了关联映射,那么您不需要提供
    on
    子句
  • 如果您想给出
    a.app\u ref\u no=os.ref\u id
    ,则无需指定
    内部联接。Hibernate会处理好的
  • 有关更多信息,请查看

    nested exception is org.hibernate.hql.ast.QuerySyntaxException: Path expected for
    join! [ from com.thetasp.losa.data.LosaApp a inner join  OS_HISTORYSTEP os with
    a.appRefNo = os.ref_id where os.step_name = '011' and a.appStatus = 'R'
    or a.appStatus = 'S'  ]