org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

Тестирую сейчас возможности Hibernate, на MySQL всё работало прекрасно, но на PostgreSQl столкнулся с проблемой (т.к. коннектился не на локальную базу данных, а на базу данных на серверах Heroku). Пытаюсь подконнектиться к бд, но выдаёт следующие исключения (скажу сразу, правильность введения данных в hibernate.cfg.xml я перепроверял):

org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
Caused by: org.hibernate.HibernateException: Unable to make JDBC Connection [jdbc:postgres://username:password@host:5432/database]
java.lang.NullPointerException: Cannot invoke "org.hibernate.SessionFactory.openSession()" because the return value of "ua.sillmarry.ArtToolsBot.util.HibernateUtil.getSessionFactory()" is null

Вот мой hibernate.cfg.xml:

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

<session-factory>

    <property name="connection.driver_class">org.postgresql.Driver</property>
    <property name="connection.url">jdbc:postgres://username:password@host:5432/database</property>
    <property name="connection.username">username</property>
    <property name="connection.password">password</property>
    <property name="connection.pool_size">1</property>
    <property name="dialect">org.hibernate.dialect.PostgreSQL94Dialect</property>
    <property name="show_sql">true</property>
    <property name="current_session_context_class">thread</property>
    <property name="hbm2ddl.auto">validate</property>
    <property name="hibernate.dbcp.initialSize">5</property>
    <property name="hibernate.dbcp.maxTotal">20</property>
    <property name="hibernate.dbcp.maxIdle">10</property>
    <property name="hibernate.dbcp.minIdle">5</property>
    <property name="hibernate.dbcp.maxWaitMillis">-1</property>

    <mapping class="ua.sillmarry.ArtToolsBot.entity.Brush" />

</session-factory>

</hibernate-configuration>

Класс HibernateSessionFactoryUtil:

package ua.sillmarry.ArtToolsBot.util;

import org.hibernate.SessionFactory;
import org.hibernate.boot.Metadata;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;

public class HibernateSessionFactoryUtil {

private static StandardServiceRegistry registry;
private static SessionFactory sessionFactory;

public static SessionFactory getSessionFactory() {
    if (sessionFactory == null) {
        try {

            registry = new StandardServiceRegistryBuilder().configure().build();
            MetadataSources sources = new MetadataSources(registry);
            Metadata metadata = sources.getMetadataBuilder().build();
            sessionFactory = metadata.getSessionFactoryBuilder().build();
        } catch (Exception e) {

            e.printStackTrace();
            if (registry != null) {

                StandardServiceRegistryBuilder.destroy(registry);
            }
        }
    }
    return sessionFactory;
}

public static void shutdown() {
    if (registry != null) {
        StandardServiceRegistryBuilder.destroy(registry);
    }

}
}

Класс Brush (mapping):

package ua.sillmarry.ArtToolsBot.entity;

import lombok.Data;
import javax.persistence.*;
import java.io.Serializable;

@Data
@Entity
@Table(name = "brushes")
public class Brush implements Serializable {

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "brushes")
@Column(name = "id")
private int id;

@Column(name = "name")
private String name;

@Column(name = "category")
private String category;

@Column(name = "gd_brush")
private String gd_brush;

@Column(name = "gd_img")
private String gd_img;

public String toString() {

    return "Brush{\n" +
            "id=" + id + ";\n" +
            "name='" + name + "';\n" +
            "category='" + category + "';\n" +
            "gd_brush='" + gd_brush + "';\n" +
            "gd_image='" + gd_img + "'.";
}
}

Ответы (0 шт):