2017-07-28 7 views
0


Ich mag einen Tabellennamen im Frühjahr Abfrage verwenden, aber wenn ich es ausführen Ich habe diese folgende Fehlermeldung:
Frühling @Query entfernen Quote

"could not extract ResultSet; SQL [n/a]; nested exception is 
org.hibernate.exception.SQLGrammarException: could not extract ResultSet" 


Da Frühjahr automatisch hinzufügen Zitat ", wenn param ist ein String param ..

@Query(value = "desc :name", nativeQuery = true) 
List<RepositoryColumn> getColumnFromRepository(@Param("name") String name); 

In einem anderen Fall möchte ich "desc table_name" und nicht "desc 'table_Name'"

Irgendeine Idee?

+1

Dies hat nichts mit Spring zu tun, sondern mit der Funktionsweise der Parametersubstitution mit JDBC. Sie können die Parameterbindung für diese Art von Abfragen nicht verwenden. –

+0

Sie können eine Prozedur erstellen, die diese Anfrage "EXEMUTE IMMEDIATE" –

Antwort

0
SELECT * 
FROM information_schema.columns 
WHERE 
    table_name = :name 

Versuchen Sie dasselbe auf andere Weise. Anstelle von * können Sie die notwendigen Spalten auswählen

+0

Thanks! es ist Arbeit, aber jetzt Wie bekomme ich das Äquivalent zu einem 'Select * FROM table_name' – Fanor79

+0

Es ist nicht möglich. Die Verwendung von Tabellennamen als Parameter wird nicht unterstützt. – StanislavL

+0

arf .. danke .. – Fanor79