Java H2不获取具有关系的字段

Java H2不获取具有关系的字段,java,spring-data-jpa,h2,spring-test,Java,Spring Data Jpa,H2,Spring Test,我正在编写基于查询从数据库中获取正确数据的测试 测试配置文件的My application-test.properties为: spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1 spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password=sa spring.datasource.d

我正在编写基于查询从数据库中获取正确数据的测试

测试配置文件的My application-test.properties为:

spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=sa
spring.datasource.data=data-test.sql
spring.datasource.schema=schema-test.sql

spring.jpa.hibernate.ddl-auto=create
schema-test.sql:

CREATE TABLE main_table (
    id INT PRIMARY KEY AUTO_INCREMENT NOT NULL,
    name VARCHAR(50) NOT NULL
);

CREATE TABLE main_table_field (
    main_table_id INT NOT NULL,
    field VARCHAR(50) NOT NULL,
    PRIMARY KEY (main_table_id, field),
    FOREIGN KEY (main_table_id) REFERENCES main_table(id)
);
data-test.sql

INSERT INTO main_table VALUES (1, 'name1');

INSERT INTO main_table_field VALUES (1, 'field1');
INSERT INTO main_table_field VALUES (1, 'field2');
实体:

@Entity
public class MainTable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    private String name;

    @ElementCollection
    private List<String> field;
}
测试失败,因为
字段的大小为0。列表是空的。这里怎么了?我通过data-test.sql插入了值。我检查了,我可以按存储库获取此行,但为什么相关列表为空

这种情况只适用于测试。当应用程序在相同的数据和模式上运行时,若已填充,则显示相关列表

public interface MainTableRepository extends JpaRepository<MainTable, Long> {}
@DataJpaTest
@ActiveProfiles("test")
public class MainTableDataTest {

    @Autowired
    private MainTableRepository repository;

    @Test
    public void testMethod() {
        MainTable item = repository.findById(1L).get();
        assertEquals(item.getField().size(), 1);
    }
}