2017-01-31 9 views
-1

Это запрос, который работает правильно в sql. Но когда я ручаю его с java-кодом. Отображение запроса синтаксиса исключениеREGEXP в java-коде

SELECT * FROM faq WHERE question REGEXP 'general' 

Мой код Java

List<Object[]> results = getBaseDao().findByNativeSql(nativeSqlForSearch.toString(), 0,0); 

где

StringBuilder nativeSqlSerach = "Select f from faq f where f.question REGEXP 'general' " 
+0

Вам не нужно вызывать 'toString()' для строки. –

+0

Каковы два нули в вызове 'findByNativeSql'? –

+0

Тем не менее, я получаю сообщение об ошибке REGEXP может использоваться в java? –

ответ

1

Некоторые ошибки я вижу здесь.

  1. Вы используете различные переменные:

    nativeSqlSerach 
    

    и

    nativeSqlForSearch 
    
  2. Вы используете строку в качестве объекта StringBuilder. Это просто неправильно, и я удивляюсь, почему он не поддается компиляции. Либо использовать

    StringBuilder nativeSqlSerach = new StringBuilder("Select f from faq f where f.question REGEXP 'general'"); 
    

    с toString() позже, или

    String nativeSqlSerach = "Select f from faq f where f.question REGEXP 'general'"; 
    

    без toString().

  3. Я не уверен, что вы опубликовали упрощенную проблему или нет, но в случае, описанном выше, вам вообще не нужен REGEX. Просто используйте = или LIKE подстановочные знаки.