2016-09-16 57 views
0

有沒有辦法記錄一些自定義@查詢方法如何在PagingAndSortingRepository中記錄@Query?

這裏是例如我的代碼:

@Query(value = "SELECT * FROM transfer WHERE char_length(internal_id) = 5 " + 
     "AND internal_id REGEXP '^[0-9]+$' AND project_id = :projectId order by created_at desc limit 1", nativeQuery = true) 
Transfer findLastWithDefaultOurIdForProject(@Param("projectId") String projectId); 

這是寫在接口擴展彈簧數據PagingAndSortingRepository

我曾嘗試與添加屬性文件,這些行記錄它:沒有真正的價值從我的服務傳遞給倉庫接口 log4j.logger.org.hibernate.SQL=DEBUG log4j.logger.org.hibernate.type=TRACE

,但我只得到查詢?

回答

2

試試這個配置:

application.properties

spring.jpa.properties.hibernate.format_sql=true 
spring.jpa.database=h2 

添加logback.xml文件src/main/resources下配置休眠顯示傳遞給SQL查詢參數:

logback.xml

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <include resource="org/springframework/boot/logging/logback/base.xml"/> 
    <logger name="org.springframework.web" level="DEBUG"/> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
     <encoder> 
      <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern> 
     </encoder> 
    </appender> 

    <logger name="org.hibernate.SQL" additivity="false" > 
     <level value="DEBUG" /> 
     <appender-ref ref="STDOUT" /> 
    </logger> 

    <logger name="org.hibernate.type" additivity="false" > 
     <level value="TRACE" /> 
     <appender-ref ref="STDOUT" /> 
    </logger> 

</configuration> 

您可以在我的GitHub存儲庫中找到工作Demo Project

+0

但有沒有辦法顯示傳遞給查詢的實際值? –

+0

@Raca查看日誌。這確實顯示了真正的值paased到SQL查詢,但在下面的行。它在查詢中顯示問號,傳遞的實際值顯示在下面的行中。你可以檢查演示項目,你會看到SQL查詢後的真實值。 –

+0

謝謝,這是真的:)日誌太長,但所有的信息都在那裏:) –

相關問題