@Test 方法下有@Sql 注解,用于執行Sql 腳本。
普通用法:
@Sql(scripts = "/folder/my_favourite_script.sql")
@Test
假設檔案夾中有 1000 個 sql 檔案,我想一次執行所有這些檔案。如何使用掩碼描述檔案?
期望的結果:
@Sql(scripts = "/folder/*.sql")
@Test
不幸的是,它不是這樣作業的:
org.springframework.jdbc.datasource.init.CannotReadScriptException: 無法從類路徑資源[folder/*.sql] 讀取 SQL 腳本;嵌套例外是 java.io.FileNotFoundException: 類路徑資源 [folder/*.sql] 無法打開,因為它不存在
uj5u.com熱心網友回復:
您不能傳遞檔案掩碼并處理它的@Sql注釋(以及@SqlGroup它采用的陣列)。@SqlAFIK 沒有 Spring 提供的用于加載 SQL 檔案的注釋。
因此,您的選擇是:
PostgreSQL:如前所述,您不能通過使用任何現有注釋進行屏蔽來包含檔案。但是,請查看此鏈接以了解如何強制執行此操作。基本上,您必須
@Autowired DataSource ds通過在其上呼叫操作而不是注釋魔術來添加和執行腳本...這樣您還可以為任何特定檔案夾添加檔案掩碼邏輯。H2:如果您將 H2 用于測驗資料庫,則運行腳本命令。您可以通過在您的資源中創建一個 .sql(我們稱之為 scripts.sql)檔案來使用它,其內容如下:
RUNSCRIPT FROM 'file1.sql'; RUNSCRIPT FROM 'file2.sql'; etc...然后只包含帶有注釋的所述檔案,如下所示:
@Sql("scripts.sql")
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/537370.html
標籤:爪哇数据库春天测试
