В EntityManagerFactory не указан параметр PersistenceProvider, а выбранный параметр PersistenceUnitInfo не указывает конфигурацию на основе аннотаций. - PullRequest
0 голосов
/ 14 сентября 2018

Я делаю кодирование на основе аннотаций, я пытаюсь запустить приложение с конфигурацией Spring, Hibernate и происходит сбой с ошибкой

Caused by: java.lang.IllegalArgumentException: No PersistenceProvider 
specified in EntityManagerFactory configuration, and chosen 
PersistenceUnitInfo does not specify a provider class name either

Ниже мой код

@SpringBootApplication
@EnableJpaRepositories
public class CurrExDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(CurrExDemoApplication.class, args);
    }

    @Bean
    @ConfigurationProperties("app.datasource")
    public DataSource dataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
        LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
        em.setDataSource(dataSource());
        em.setPackagesToScan("com.currencyExchange.currExDemo");

        Properties props = new Properties();
        props.put("showSql", true);
        props.put("databasePlatform", Database.MYSQL);
        props.put("hibernate.hbm2ddl.auto", "create");
        em.setJpaProperties(props);

        return em;
    }
}

Что не так в этом коде?

1 Ответ

0 голосов
/ 14 сентября 2018

Похоже, вам не хватает хотя бы JpaVendorAdapter

добавьте это так:

HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setDatabasePlatform(hibernateDialect);
emf.setJpaVendorAdapter(vendorAdapter);

hibernateDialect, например, org.hibernate.dialect.MySQL5Dialect но это зависит от вашей базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...