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查询中。