Я пытаюсь выполнить тестирование Junit в Spring Boot 2.1.4 с использованием встроенной базы данных H2.Я сталкиваюсь со специфической проблемой с последовательностью.Итак, в соответствии с руководством по начальной загрузке и h2, у меня есть скрипт schema.sql для генерации моих соответствующих таблиц:
create sequence seq_test increment by 50;
Я вижу, что последовательность создания вызывается из журналов отладки.
Чтобы проверить, работает ли последовательность, я запустил nextval (), но получил таблицу seq_test, не созданную ошибку.Это происходит только для последовательности, когда я запросил нормальную таблицу, я получил правильный результат.
Контрольный пример:
@RunWith(SpringRunner.class)
@ActiveProfiles("test")
@SpringBootTest
@Import({EmbeddedRedis.class, EmbeddedRabbitMQ.class})
@Slf4j
public class ProfileCreationTests {
@Autowired
private EntityManager em;
@Test
public void profileCreationTest() {
Query query = em
.createNativeQuery("SELECT NEXTVAL(seq_test)");
log.info(query.getSingleResult().toString());
log.info(em.createNativeQuery("SELECT count(*) FROM tbl_test").getSingleResult().toString());
}
}
Ошибка первой строки, если я закомментировал ее, второй запросработает нормально.
конфигурация приложения: весна: профили: тест h2: консоль: включено: true jpa: hibernate: use-new-id-generator-mappings: true