diff --git a/lastleg-service/src/test/java/com/baiyue/lastleg/fleet/photo/FleetResourcePhotoPersistenceTest.java b/lastleg-service/src/test/java/com/baiyue/lastleg/fleet/photo/FleetResourcePhotoPersistenceTest.java index 55cc5c79d..ff90849ee 100644 --- a/lastleg-service/src/test/java/com/baiyue/lastleg/fleet/photo/FleetResourcePhotoPersistenceTest.java +++ b/lastleg-service/src/test/java/com/baiyue/lastleg/fleet/photo/FleetResourcePhotoPersistenceTest.java @@ -15,10 +15,15 @@ import static org.assertj.core.api.Assertions.*; /** 使用真实建表定义与Mapper验证类型隔离、最新版本及不可变历史。 */ class FleetResourcePhotoPersistenceTest { + /** 仅装载照片表定义,避免执行同文件后续的其他业务迁移。 */ @Test void preservesHistoryAndRejectsTwoWritesToSameVersion() throws Exception { var source=new JdbcDataSource();source.setURL("jdbc:h2:mem:photos_"+UUID.randomUUID()+";MODE=MySQL;DB_CLOSE_DELAY=-1"); var schema=Files.readString(Path.of("src/main/resources/db/lastleg.sql")); - var ddl=schema.substring(schema.indexOf("CREATE TABLE IF NOT EXISTS ll_fleet_resource_photo (")); + int start=schema.indexOf("CREATE TABLE IF NOT EXISTS ll_fleet_resource_photo ("); + assertThat(start).isGreaterThanOrEqualTo(0); + int end=schema.indexOf(';',start); + assertThat(end).isGreaterThan(start); + var ddl=schema.substring(start,end+1); try(var connection=source.getConnection();var statement=connection.createStatement()) { statement.execute(ddl); } var config=new Configuration(new Environment("photos",new JdbcTransactionFactory(),source)); config.setMapUnderscoreToCamelCase(true);config.addMapper(FleetResourcePhotoMapper.class);