Spring 如何在PagingAndSortingRepository中记录@Query?

Spring 如何在PagingAndSortingRepository中记录@Query?,spring,hibernate,logging,spring-boot,spring-data,Spring,Hibernate,Logging,Spring Boot,Spring Data,有没有办法记录一些自定义的查询方法 下面是我的代码示例: @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 findLast

有没有办法记录一些自定义的查询方法

下面是我的代码示例:

@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);
它是在扩展spring数据分页和排序存储库的接口中编写的

我尝试在属性文件中添加以下行来记录:
log4j.logger.org.hibernate.SQL=DEBUG
log4j.logger.org.hibernate.type=TRACE


但我只收到没有从服务传递到存储库接口的实际值的查询?

尝试以下配置:

application.properties

spring.jpa.properties.hibernate.format_sql=true
spring.jpa.database=h2
src/main/resources
下添加
logback.xml
文件,以配置Hibernate以显示传递给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存储库中。

问题在于应用程序属性

属性上的前缀错误


logging.level.org.hibernate.SQL=DEBUG logging.level.org.hibernate.type=TRACE

我更改了属性。。。但是有没有办法显示传递给查询的真实值?有没有办法显示传递给查询的真实值?@Raca请参阅日志。这确实显示了sql查询的实际值,但显示在下面的行中。它在查询中显示问号,传递的实际值显示在下面的行中。您可以查看演示项目,在sql查询后您会看到真实值。谢谢,这是真的:)日志太长,但所有信息都在那里:)是的,不幸的是,真实值不会直接显示在sql查询中。