这是一个MRE:
package com.example.h2_demo;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.jdbc.Sql;
@DataJpaTest
@Sql(
executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD,
scripts = {"/create_user_table.sql", "/insert_user.sql"}
)
public class H2DemoApplicationTest {
@Test
void testNothing() {
}
@Test
void testNothingOneMoreTime() {
}
}
-- create_user_table.sql
CREATE TABLE IF NOT EXISTS users(
id INTEGER PRIMARY KEY,
name VARCHAR(50) NOT NULL,
last_name VARCHAR(50)
);
-- insert_user.sql
INSERT INTO users
VALUES (1, 'John', 'Doe');
我稍微修改了一下脚本,现在可以相当肯定@Sql
脚本 * 已经 * 执行。但是,当您查看日志时,这并不明显。不存在相关的CREATE
或INSERT
语句
我确实尝试了我在互联网上看到的每一个建议的属性(包括StackOverflow)。在这一点上,我的属性是:
spring.jpa.properties.hibernate.show_sql=true
spring.jpa.properties.hibernate.use_sql_comments=true
spring.jpa.properties.hibernate.format_sql=true
logging.level.org.hibernate.type=trace
logging.level.org.springframework.jdbc.core=TRACE
logging.level.org.springframework.test.context.jdbc=debug
型
我仔细检查并确保这些值存在于target
文件夹的application.properties
中
仍然没有日志(抱歉的图像,没有看到一个解决方案)
text search for "insert" provides no matches
如何在日志中查看这些@Sql
查询?
1条答案
按热度按时间7lrncoxx1#
如果您想查看正在执行哪些
@Sql
脚本,请将org.springframework.test.context.jdbc
日志记录类别设置为DEBUG
。如果您想查看正在执行哪些SQL语句,请将
org.springframework.jdbc.datasource.init
日志记录类别设置为DEBUG
。请注意,我还打开了一个ticket来改进Spring中的文档以反映这一点。