Spring - BeanCreationException: ошибка создания бина с именем entityManagerFactory, определенным в ресурсе пути к классу - PullRequest
0 голосов
/ 17 марта 2020

Я использую spring-boot-spigot-starter для моего плагина Spigot, и я не могу заставить его работать должным образом. Я получаю длинную ошибку при запуске плагина: https://hastebin.com/lahawuyuqi.md (org.springframework.beans.factory.BeanCreationException: Ошибка при создании бина с именем 'entityManagerFactory', определенным в ресурсе пути к классу [org / springframework / boot / autoconfigure / orm / jpa / HibernateJpaConfiguration.class]: сбой вызова метода init; вложенное исключение - javax.persistence.PersistenceException: невозможно разрешить единицу сохранения root URL)

Мой основной класс:

    public final class Skyblock extends JavaPlugin {

    private ConfigurableApplicationContext context;
    private static Skyblock instance;

    @Override
    public void onEnable() {
        instance = this;
        saveDefaultConfig();

        Log.info("Loading...");

        //Thread.currentThread().setContextClassLoader(getClass().getClassLoader());

        ResourceLoader loader = new DefaultResourceLoader(getClassLoader());
        SpringApplication application = new SpringApplication(loader, Application.class);
        application.addInitializers(new SpringSpigotInitializer(this));

        Properties properties = new Properties();

        try {
            properties.load(getClassLoader().getResourceAsStream("application.properties"));
        } catch (IOException ex) {
            ex.printStackTrace();
        }

        setupDatabase(properties);
        application.setDefaultProperties(properties);

        context = application.run();
    }

    private void setupDatabase(Properties properties) {
        ConfigurationSection section = getConfig().getConfigurationSection("mysql");

        String host = section.getString("hostname", "hostname");
        int port = section.getInt("port", 3306);
        String database = section.getString("database", "database");
        String username = section.getString("username", "username");
        String password = section.getString("password", "password");

        properties.setProperty("spring.datasource.url", "jdbc:mysql://${MYSQL_HOST:" + host + "}:" + port + "/" + database + "?useUnicode=yes&characterEncoding=UTF-8");
        properties.setProperty("spring.datasource.username", username);
        properties.setProperty("spring.datasource.password", password);
    }

    @Override
    public void onDisable() {
        context.close();
        context = null;
    }

    public static Skyblock getInstance() {
        return instance;
    }
}

Application.properties:

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.data.jpa.repositories.enabled=false
spring.datasource.platform=mysql

spring.jpa.properties.hibernate.jdbc.time_zone=CET
spring.jpa.hibernate.ddl-auto=update
spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...