2017-01-31 2 views
-1

Dies ist die Abfrage, die ordnungsgemäß in SQL ausgeführt wird. Aber wenn ich es mit Java Code ruuniere. Zeige Abfragesyntax AusnahmeREGEXP in Java-Code

SELECT * FROM faq WHERE question REGEXP 'general' 

Mein Java-Code

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

wo

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

Sie müssen 'toString()' nicht in einer Zeichenfolge aufrufen. –

+0

Wofür stehen die beiden Nullen im Aufruf 'findByNativeSql'? –

+0

Noch bekomme ich Fehler ist REGEXP kann in Java verwendet werden? –

Antwort

1

Einige Fehler, die ich hier zu sehen.

  1. Sie verwenden verschiedene Variablen:

    nativeSqlSerach 
    

    und

    nativeSqlForSearch 
    
  2. Du einen String als Stringbuilder-Objekt verwenden. Das ist einfach falsch und ich frage mich, warum es nicht versäumt zu kompilieren. Entweder verwenden

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

    mit toString() später oder

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

    ohne toString().

  3. Ich bin mir nicht sicher, ob Sie ein vereinfachtes Problem geschrieben haben oder nicht, aber in dem oben beschriebenen Fall benötigen Sie überhaupt keine . Verwenden Sie einfach = oder LIKE Platzhalter-Notation.