Ошибка проверки схемы Hibernate на SpringBootTest

Попытка получить модульный тест для запуска с аннотацией @SpringBootTest, и я получаю эту ошибку из спящего режима. Вся информация, которую я могу найти в Интернете, говорит, что для "hibernate.id.new_generator_mappings" задано значение false, но это не решает мою проблему.

@RunWith(SpringRunner.class)
@SpringBootTest(classes = AppserverApp.class)
public class DummyTest {

    @Test
    public void dummyTest() {
        fail();
    }
}

2017-11-17 13: 20: 28.885 ПРЕДУПРЕЖДЕНИЕ 11396 --- [ main] oswcsGenericWebApplicationContext: Возникла исключительная ситуация во время инициализации контекста - отмена попытки обновления: org.springframework.beans.factory.BeanCreationException: ошибка создания бина с именем entityManagerFactory, определенного в ресурс пути к классу [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: сбой вызова метода init; вложенное исключение: javax.persistence.PersistenceException: [PersistenceUnit: default] Невозможно построить Hibernate SessionFactory 2017-11-17 13:20:28.925 WARN 11396 --- [ main] osboot.SpringApplication: Ошибка обработки (ошибка при создании компонента с именем "DelegatingApplicationListener", определенный в ресурсе пути к классу [org/springframework/security/config/annotation/web/configuration/WebSecurityConfiguration.class]: BeanPostProcessor до сбоя создания экземпляра bean-компонента; вложенным исключением является org.springframework.beans.factory.BeanCreationException: ошибка создания bean-компонент с именем org.springframework.cache.annotation.ProxyCachingConfiguration: сбой инициализации bean-компонента; вложенное исключение org.springframework.beans.factory.NoSuchBeanDefinitionException: нет bean-объекта с именем org.springframework.contextProgory.port_set_settablePort) 2017-11-17 13:20:28.951 ОШИБКА 11396 --- [ main] osboot.SpringApplication: сбой запуска приложения

org.springframework.beans.factory.BeanCreationException: Ошибка при создании компонента с именем 'entityManagerFactory', определенным в ресурсе пути к классу [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: сбой вызова метода init; вложенное исключение: javax.persistence.PersistenceException: [PersistenceUnit: default] Невозможно построить Hibernate SessionFactory в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireactans.raj..AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) в org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory. Java:306) в org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) в org.springframework.beans.factory.support..beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) в org.springframework.context.support. Java:542) в org.springframework.boot.SpringApplication.refresh(SpringApplication.java:737) в org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370) в org.springframework.bopp.pr.java:314) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:120) в org.springframework.test.context.cache.DefaultCacheAwareContextLxtInwareAteDateAteDateGateDateGate.Date.teD springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116) в орг.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83) в org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNe един. ServletTestExecutionListener. по адресу org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287) по адресу org.junit.internal.runners.model.ReflectiveCallable.run:f.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289) в org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247) в org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94) в org.junit.runners.ParentRunner$3.run(ParentRun.jpg2).runners.ParentRunner$1.schedule(ParentRunner.java:71) в org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) в org.junit.runners.ParentRunner.access$000(ParentRunner.java:58).junit.runners.ParentRunner$2 высказывания.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) в org.junit.runners.ParentRunner.run(ParentRunner.java:363) в org.springframework.test.context.junit4.SpringJRuns.rj.unit.Ru в org.junit.runner.JUnitCore.run(JUnitCore.java:137) в com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68) в com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51) в com.intellij.rt.execution.junit.24.j.jt.) в com.intellij.rt.execution.junit.JUnitStarter.main (JUnitStarter.java:70) Причина: javax.persistence.PersistenceException: [PersistenceUnit: default] Невозможно построить Hibernate SessionFactory в org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:967) при org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:892) в org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider. Java:60) в org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:353) в org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:370) при org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:359) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624) ... 39 общих опущенных фреймов Причинено: org.hibernate.maan.ma. валидация: отсутствует последовательность [hibernate_sequence] в org.hibernate.tool.schema.internal.AbstractSchemaValidator.validateSequence(AbstractSchemaValidator.java:184) в org.hibernate.tool.schema.internal.AbstractSchemaValidatoralj.javid.atform.perform org.hibernate.tool.schema.internal.AbstractSchemaValidator.doValidation(AbstractSchemaValidator.java:68) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:191) в org.hibernate.tool.schema.spi.SchemaManagementToGoNoGoTooloordino.hibernate.internal. Java:889) ... пропущено 45 общих кадров

2 ответа

Я использую MySQL в качестве основной базы данных и H2 в качестве тестовой базы данных. Мое основное приложение работало нормально, так как я использую MySQL, и столбцы идентификаторов моих сущностей снабжены комментариями для использования стратегии идентификации @GeneratedValue(strategy = GenerationType.IDENTITY) исключение не имело значения.

Поэтому сравнение application.yml dev и test показало мне решение!

В моем случае это происходило потому, что в тестовом профиле (application.yml) была включена проверка гибернации:

spring:
    jpa:
        properties:
            hibernate.hbm2ddl.auto: validate

Удаление этого свойства в моем тестовом профиле решило проблему.

Я предполагаю, что у вас включена проверка гибернации в тестовом профиле, но не в профиле запуска.

Другие вопросы по тегам