Tutorials  /  Databases

Lösung für HibernateException bei fehlendem 'hibernate.dialect'

Ccentron Redaktion · Mai 2024 ·2 Min. Lesezeit ·Databases, Tutorial

Haben Sie Schwierigkeiten mit der HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set?

In unserem neuesten Blogbeitrag teilen wir eine detaillierte Lösung für dieses häufige Problem!

Der Fehler und seine Ursache

Beim Arbeiten mit Hibernate kann es vorkommen, dass man auf Fehler stößt, die zunächst unerklärlich scheinen. Ein solcher Fehler ist die HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set. Dieser Fehler kann frustrierend sein, besonders wenn man denkt, dass alle Konfigurationen korrekt sind. In diesem Beitrag möchte ich meine Erfahrung mit diesem spezifischen Problem teilen und wie ich es gelöst habe.

DB

Passende Infrastruktur bei centron

Datenbanken im Betrieb wollen gepflegt werden: centron übernimmt auf Wunsch Updates, Backups und Monitoring – von der einzelnen Instanz bis zum Cluster. Managed Cluster ansehen →

Die Lösung für HibernateException

Nach einiger Recherche und Debugging fand ich die Lösung. Das Fehlende in der offiziellen Dokumentation war, dass die Konfigurationseigenschaften auf den StandardServiceRegistryBuilder angewendet werden müssen. Ich änderte die Hilfsklasse SessionFactoryUtil entsprechend ab. Dabei ist der Aufruf von StandardServiceRegistryBuilder().applySettings entscheidend, bei dem die Konfigurationseigenschaften übergeben werden.

Go
package com.journaldev.hibernate.util;

import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;

public class SessionFactoryUtil {
    // ...
    private static SessionFactory buildSessionFactory() {
        try {
            Configuration configuration = new Configuration();
            configuration.configure("hibernate.cfg.xml");
            // Anwenden der Konfigurationseinstellungen
            ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
                .applySettings(configuration.getProperties()).build();

            SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
            return sessionFactory;
        } catch (Throwable ex) {
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }
    // ...
}

Fazit

Hibernate entwickelt sich ständig weiter, und jede Version bringt viele Änderungen mit sich. Leider hinkt der Dokumentationsteil oft hinterher. Diese Erfahrung zeigt, wie wichtig es ist, nicht nur der offiziellen Dokumentation zu folgen, sondern auch eigene Recherchen und Debugging durchzuführen, um Probleme zu lösen. Ich hoffe, dass dieser Beitrag anderen Entwicklern hilft, Zeit beim Debuggen zu sparen und ähnliche Probleme effizient zu lösen.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Databases
Teilen
Noch offene Fragen?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren