2016-09-16 3 views
0

カスタムをログに記録する方法はありますか?@Queryメソッド?ここで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 

SQLクエリに渡されたパラメータを表示するために休止を設定するには、src/main/resourceslogback.xmlファイルを追加します。

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ログを参照してください。これは、SQLクエリにpaasedされた実際の値を示していますが、以下の行にあります。クエリに疑問符が表示され、渡された実際の値が下の行に表示されます。あなたはデモプロジェクトをチェックすることができ、SQLクエリの後に実際の値が表示されます。 –

+0

ありがとう、本当です:)ログは長すぎますが、すべての情報はそこにあります:) –

関連する問題