2015-06-17 9 views
5

Ich bin neu in Spring Boot. Was ist die Konfigurationseinstellung für die SQL-Parameterbindung? Zum Beispiel sollte ich in der folgenden Zeile Werte für alle '?' Sehen können.Spring boot show sql parameter binding?

SELECT * FROM MyFeed WHERE FeedId>? UND isHidden = false ORDER BY feedId DESC LIMIT?

Zur Zeit habe ich Konfiguration als

spring.jpa.show-sql: true

Antwort

7

Dies ist nur ein Hinweis auf die zugrunde liegenden Persistenz-Provider z.B. Hibernate, EclipseLink usw. Ohne zu wissen, was Sie verwenden, ist es schwierig zu sagen.

Für Hibernate können Sie die Protokollierung so konfigurieren, dass auch Ausgangs die Bindeparameter:

http://www.mkyong.com/hibernate/how-to-display-hibernate-sql-parameter-values-log4j/

, die Sie Ausgang geben wie:

Hibernate: INSERT INTO transaction (A, B) 
VALUES (?, ?) 
13:33:07,253 DEBUG FloatType:133 - binding '10.0' to parameter: 1 
13:33:07,253 DEBUG FloatType:133 - binding '1.1' to parameter: 2 

eine alternative Lösung, die für alle PPV-Anbieter arbeiten sollten ist, etwas wie log4jdbc zu verwenden, das Ihnen die nettere Ausgabe geben würde:

INSERT INTO transaction (A, B) values (10.0, 1.1); 

Siehe:

https://code.google.com/p/log4jdbc-log4j2/

+0

Danke @Alan für die Antwort. Ich mag Ihre alternative Lösung vorgeschlagen. Ich habe noch keine Zeit, das zu überprüfen :). Wenn das Problem weiterhin besteht, melde ich mich bei Ihnen. –

1

diese application.properties hinzufügen und Sie sollten die Protokolle in Details sehen.

logging.level.org.hibernate.SQL=debug 
logging.level.org.hibernate.type.descriptor.sql=trace