Java выдает «PersistenceException: SQLGrammarException: не удалось извлечь набор результатов» - PullRequest
1 голос
/ 20 марта 2019

Я вызываю функцию, которая пытается проверить, существует ли конкретная запись в моей таблице в 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 Ответ

3 голосов
/ 20 марта 2019

Я думаю, вам не хватает одного параметра:

"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 + "'"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...