Search code examples
jpaspring-bootspring-data

Spring boot show sql parameter binding?


I am new to spring boot. What is the configuration setting for sql parameter binding? For example, in the following line I should be able to see values for all '?'.

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

Currently, I have the configuration as

spring.jpa.show-sql: true 

Solution

  • This is just a hint to the underlying persistence provider e.g. Hibernate, EclipseLink etc. Without knowing what you are using it is difficult to say.

    For Hibernate you can configure logging to also output the bind parameters:

    which will give you output like:

    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
    

    An alternative solution which should work across all JPA providers is to use something like log4jdbc which would give you the nicer output:

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

    See:

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