Java抛出“ PersistenceException:SQLGrammarException:无法提取结果集”

时间:2019-03-20 09:58:12

标签: java hibernate jpa

我正在调用一个函数,该函数尝试检查MYSQL表中是否存在特定记录。

功能:

 public String get_value(long nodeid,String ts) {
        try {
            String sql="Select URL FROM urllink WHERE URL="+"'f0='"+nodeid+"'&ts='"+ts;

            em.createNativeQuery(sql).getSingleResult();
            if (em == null) {
                throw new Exception("could not found URL object.");
            }
          //  return 1;

        } catch (Exception e) {
            e.printStackTrace();



        }
       return null;
    }

当转到getSingleResult()时,它会抛出:

PersistenceException:SQLGrammarException: Could not extract resultset

我检查了我的SQL查询,看起来很好,所以我不确定出了什么问题。

编辑

调用者函数:

String v=fileFacade1.get_value(fileID,date);

  if(v !=null ){ 

// if the URL column contains the result, do something.


}

1 个答案:

答案 0 :(得分:3)

我认为,您缺少一个参数:

"Select URL FROM urllink WHERE URL="+"'f0='"+nodeid+"'&ts='"+ts
                                    ^ here

因为解析后查询是:

Select URL FROM urllink WHERE URL='f0='nodeid'&ts='ts

另一件事是&在sql中不是有效的逻辑运算符,应改为使用and

编辑:如果您希望它成为where子句中的一个字符串,则可能意味着:

"Select URL FROM urllink WHERE URL='f0="+nodeid+"&ts="+ts + "'"