Fehleranzeige: jdbc.internal.JdbcIsolationDelegate.sqlExceptionHelper()" is null

ExceptionOfExpectation

Bekanntes Mitglied
Hallo, ich habe einen SpringBoot 3 Projekt gestartet und soweit so gut funktioniert alles, außer einen Fehler zwischen den Zeilen:
HTML:
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/

 :: Spring Boot ::                (v3.3.1)

2024-07-07T15:16:41.881+02:00  INFO 15972 --- [Date4u] [  restartedMain] com.example.project.Date4uApplication        : Starting Date4uApplication using Java 17.0.7 with PID 15972 (C:\Users\iRahi\eclipse-workspace\Date4u\target\classes started by user in C:\Users\user\eclipse-workspace\Date4u)
2024-07-07T15:16:41.881+02:00  INFO 15972 --- [Date4u] [  restartedMain] com.example.project.Date4uApplication        : No active profile set, falling back to 1 default profile: "default"
2024-07-07T15:16:42.123+02:00  INFO 15972 --- [Date4u] [  restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2024-07-07T15:16:42.126+02:00  INFO 15972 --- [Date4u] [  restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 2 ms. Found 0 JPA repository interfaces.
2024-07-07T15:16:42.254+02:00  INFO 15972 --- [Date4u] [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port 8080 (http)
2024-07-07T15:16:42.256+02:00  INFO 15972 --- [Date4u] [  restartedMain] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2024-07-07T15:16:42.258+02:00  INFO 15972 --- [Date4u] [  restartedMain] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.25]
2024-07-07T15:16:42.308+02:00  INFO 15972 --- [Date4u] [  restartedMain] o.a.c.c.C.[Tomcat-1].[localhost].[/]     : Initializing Spring embedded WebApplicationContext
2024-07-07T15:16:42.309+02:00  INFO 15972 --- [Date4u] [  restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 425 ms
2024-07-07T15:16:42.319+02:00  INFO 15972 --- [Date4u] [  restartedMain] com.zaxxer.hikari.HikariDataSource       : HikariPool-5 - Starting...
2024-07-07T15:16:43.371+02:00  INFO 15972 --- [Date4u] [  restartedMain] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [name: default]
2024-07-07T15:16:43.375+02:00  INFO 15972 --- [Date4u] [  restartedMain] o.h.c.internal.RegionFactoryInitiator    : HHH000026: Second-level cache disabled
2024-07-07T15:16:43.395+02:00  INFO 15972 --- [Date4u] [  restartedMain] o.s.o.j.p.SpringPersistenceUnitInfo      : No LoadTimeWeaver setup: ignoring JPA class transformer
2024-07-07T15:16:43.396+02:00  INFO 15972 --- [Date4u] [  restartedMain] com.zaxxer.hikari.HikariDataSource       : HikariPool-5 - Starting...
2024-07-07T15:16:44.401+02:00  WARN 15972 --- [Date4u] [  restartedMain] o.h.e.j.e.i.JdbcEnvironmentInitiator     : HHH000342: Could not obtain connection to query metadata

java.lang.NullPointerException: Cannot invoke "org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(java.sql.SQLException, String)" because the return value of "org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.sqlExceptionHelper()" is null
    at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:116) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:290) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:123) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:77) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.boot.model.relational.Database.<init>(Database.java:45) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:221) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:189) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:171) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1431) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1502) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75) ~[spring-orm-6.1.10.jar:6.1.10]
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) ~[spring-orm-6.1.10.jar:6.1.10]
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ~[spring-orm-6.1.10.jar:6.1.10]
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) ~[spring-orm-6.1.10.jar:6.1.10]
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) ~[spring-orm-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1835) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1784) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:952) ~[spring-context-6.1.10.jar:6.1.10]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) ~[spring-context-6.1.10.jar:6.1.10]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.3.1.jar:3.3.1]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.3.1.jar:3.3.1]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.3.1.jar:3.3.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.3.1.jar:3.3.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) ~[spring-boot-3.3.1.jar:3.3.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) ~[spring-boot-3.3.1.jar:3.3.1]
    at com.example.project.Date4uApplication.main(Date4uApplication.java:10) ~[classes/:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
    at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-3.3.1.jar:3.3.1]

2024-07-07T15:16:44.417+02:00  WARN 15972 --- [Date4u] [  restartedMain] org.hibernate.orm.deprecation            : HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)
2024-07-07T15:16:44.471+02:00  INFO 15972 --- [Date4u] [  restartedMain] o.h.e.t.j.p.i.JtaPlatformInitiator       : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
2024-07-07T15:16:44.472+02:00  INFO 15972 --- [Date4u] [  restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2024-07-07T15:16:44.527+02:00  WARN 15972 --- [Date4u] [  restartedMain] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2024-07-07T15:16:44.671+02:00  INFO 15972 --- [Date4u] [  restartedMain] o.s.b.d.a.OptionalLiveReloadServer       : LiveReload server is running on port 35729
2024-07-07T15:16:44.708+02:00  WARN 15972 --- [Date4u] [  restartedMain] org.jline                                : Unable to create a system terminal, creating a dumb terminal (enable debug logging for more information)
2024-07-07T15:16:44.774+02:00  INFO 15972 --- [Date4u] [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port 8080 (http) with context path '/'
2024-07-07T15:16:44.779+02:00  INFO 15972 --- [Date4u] [  restartedMain] com.example.project..Date4uApplication        : Started Date4uApplication in 2.96 seconds (process running for 2199.374)
2024-07-07T15:16:44.782+02:00  INFO 15972 --- [Date4u] [  restartedMain] .ConditionEvaluationDeltaLoggingListener : Condition evaluation unchanged
Wenn Ihr die erste Zeile nach der Fehlermeldung sieht, steht dort, dass "H2Dialect is deprecated" und ist nicht nötig, dabei bricht alles zusammen, wenn ich es rausnehme. Ich würde gern verstehen warum der Fehler geworfen wird und es beseitigen. Es soll etwas mit meiner application.properties zu tun haben:

HTML:
spring.application.name=Date4u
spring.datasource.url = jdbc:h2:tcp://localhost/E:/stack/h2/unicorns
spring.datasource.username=user
spring.datasource.password=pass


spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.datasource.driver-class-name=org.h2.Driver

spring.data.rest.base-path=/api

spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update

spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
 
Zuletzt bearbeitet:

Oneixee5

Top Contributor
Das sieht falsch aus: spring.datasource.url = jdbc:h2:tcp://localhost/E:/stack/h2/unicorns
Brauchst du wirklich einen DB-Server oder reicht eine embedded DB?
Code:
jdbc:h2:[file:][<path>]<databaseName>
jdbc:h2:file:/data/sample
jdbc:h2:file:C:/data/sample (Windows only)
http://www.h2database.com/html/features.html#connection_modes

"H2Dialect is deprecated" - ist nur eine Warnung von Hibernate - s. auch: https://github.com/hibernate/hibern...de.adoc#version-specific-and-spatial-dialects
 
Zuletzt bearbeitet:
Hallo, ich war mal so freundlich und habe ChatGPT danach gefragt, und das war seine Antwort (ich kann aber nicht beurteilen, inwieweit hilfreich):

### Zusammenfassung des Fehlers
Der Benutzer hat ein Spring Boot 3-Projekt gestartet und erhält eine JDBC-bezogene Fehlermeldung, die auf einen NullPointer-Hinweis in der JdbcIsolationDelegate von Hibernate im Zusammenhang mit einem SqlExceptionHelper verweist. Es wird auch darauf hingewiesen, dass H2Dialect deprecated ist und entfernt werden sollte, was jedoch zu einem Fehler führt. Die relevante Konfiguration in der Datei application.properties lautet:

Code:
spring.application.name=Date4u
spring.datasource.url=jdbc:h2:tcp://localhost/E:/stack/h2/unicorns
spring.datasource.username=user
spring.datasource.password=pass
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.datasource.driver-class-name=org.h2.Driver
spring.data.rest.base-path=/api
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

### Mögliche Ursachen und Lösungen

#### 1. H2Dialect-Einstellung
Die Warnung besagt, dass H2Dialect nicht mehr explizit gesetzt werden muss, da es von Hibernate automatisch erkannt wird. Entfernen Sie die Zeile:
Code:
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

#### 2. SQL Exception Helper NullPointer
Der NullPointer-Fehler kann durch eine fehlerhafte Initialisierung des JdbcIsolationDelegate verursacht werden. Überprüfen Sie die Hibernate-Version und stellen Sie sicher, dass Sie eine kompatible Version verwenden.

#### 3. Connection Configuration
Stellen Sie sicher, dass der H2-Datenbanktreiber korrekt konfiguriert ist:
Code:
spring.datasource.driver-class-name=org.h2.Driver

#### 4. Zusätzliche Debugging-Informationen
Aktivieren Sie das Debug-Logging für Hibernate und Spring Boot, um detailliertere Informationen zur Fehlerursache zu erhalten:
Code:
logging.level.org.hibernate=DEBUG
logging.level.org.springframework=DEBUG

#### 5. Hikari Connection Pool
Überprüfen Sie, ob der Hikari Connection Pool korrekt startet und alle erforderlichen Verbindungen erstellt werden:
Code:
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=2
spring.datasource.hikari.idle-timeout=60000
spring.datasource.hikari.pool-name=Date4uHikariCP
spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.connection-timeout=30000

### Beispiel einer modifizierten application.properties
Code:
spring.application.name=Date4u
spring.datasource.url=jdbc:h2:tcp://localhost/E:/stack/h2/unicorns
spring.datasource.username=user
spring.datasource.password=pass
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.datasource.driver-class-name=org.h2.Driver
spring.data.rest.base-path=/api
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

# Debug Logging
logging.level.org.hibernate=DEBUG
logging.level.org.springframework=DEBUG

# Hikari CP Settings
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=2
spring.datasource.hikari.idle-timeout=60000
spring.datasource.hikari.pool-name=Date4uHikariCP
spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.connection-timeout=30000

Probieren Sie die obigen Änderungen nacheinander aus und stellen Sie sicher, dass Sie das Projekt neu starten, um zu sehen, ob das Problem behoben wurde. Wenn das Problem weiterhin besteht, posten Sie die neuen Fehlermeldungen für weitergehende Unterstützung.
 

ExceptionOfExpectation

Bekanntes Mitglied
Das sieht falsch aus: spring.datasource.url = jdbc:h2:tcp://localhost/E:/stack/h2/unicorns
Brauchst du wirklich einen DB-Server oder reicht eine embedded DB?
Code:
jdbc:h2:[file:][<path>]<databaseName>
jdbc:h2:file:/data/sample
jdbc:h2:file:C:/data/sample (Windows only)
http://www.h2database.com/html/features.html#connection_modes

"H2Dialect is deprecated" - ist nur eine Warnung von Hibernate - s. auch: https://github.com/hibernate/hibern...de.adoc#version-specific-and-spatial-dialects
Redest du jetzt über eine Datenbank, die in das Projekt integriert ist? Das wäre cool, im Internet finde ich kaum was dazu, vielleicht verwende ich falsche Stichpunkte.
Ich habe einen Tomcat Server und dafür möchte ich auf eine Datenbank zugreifen, die sich in anderem Laufwerk befindet. Was das H2Dialect angeht, es steht man kann es entfernen, da es per default eingefügt wird.
 

ExceptionOfExpectation

Bekanntes Mitglied
Hallo, ich war mal so freundlich und habe ChatGPT danach gefragt, und das war seine Antwort (ich kann aber nicht beurteilen, inwieweit hilfreich):

### Zusammenfassung des Fehlers
Der Benutzer hat ein Spring Boot 3-Projekt gestartet und erhält eine JDBC-bezogene Fehlermeldung, die auf einen NullPointer-Hinweis in der JdbcIsolationDelegate von Hibernate im Zusammenhang mit einem SqlExceptionHelper verweist. Es wird auch darauf hingewiesen, dass H2Dialect deprecated ist und entfernt werden sollte, was jedoch zu einem Fehler führt. Die relevante Konfiguration in der Datei application.properties lautet:

Code:
spring.application.name=Date4u
spring.datasource.url=jdbc:h2:tcp://localhost/E:/stack/h2/unicorns
spring.datasource.username=user
spring.datasource.password=pass
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.datasource.driver-class-name=org.h2.Driver
spring.data.rest.base-path=/api
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

### Mögliche Ursachen und Lösungen

#### 1. H2Dialect-Einstellung
Die Warnung besagt, dass H2Dialect nicht mehr explizit gesetzt werden muss, da es von Hibernate automatisch erkannt wird. Entfernen Sie die Zeile:
Code:
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

#### 2. SQL Exception Helper NullPointer
Der NullPointer-Fehler kann durch eine fehlerhafte Initialisierung des JdbcIsolationDelegate verursacht werden. Überprüfen Sie die Hibernate-Version und stellen Sie sicher, dass Sie eine kompatible Version verwenden.

#### 3. Connection Configuration
Stellen Sie sicher, dass der H2-Datenbanktreiber korrekt konfiguriert ist:
Code:
spring.datasource.driver-class-name=org.h2.Driver

#### 4. Zusätzliche Debugging-Informationen
Aktivieren Sie das Debug-Logging für Hibernate und Spring Boot, um detailliertere Informationen zur Fehlerursache zu erhalten:
Code:
logging.level.org.hibernate=DEBUG
logging.level.org.springframework=DEBUG

#### 5. Hikari Connection Pool
Überprüfen Sie, ob der Hikari Connection Pool korrekt startet und alle erforderlichen Verbindungen erstellt werden:
Code:
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=2
spring.datasource.hikari.idle-timeout=60000
spring.datasource.hikari.pool-name=Date4uHikariCP
spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.connection-timeout=30000

### Beispiel einer modifizierten application.properties
Code:
spring.application.name=Date4u
spring.datasource.url=jdbc:h2:tcp://localhost/E:/stack/h2/unicorns
spring.datasource.username=user
spring.datasource.password=pass
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.datasource.driver-class-name=org.h2.Driver
spring.data.rest.base-path=/api
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

# Debug Logging
logging.level.org.hibernate=DEBUG
logging.level.org.springframework=DEBUG

# Hikari CP Settings
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=2
spring.datasource.hikari.idle-timeout=60000
spring.datasource.hikari.pool-name=Date4uHikariCP
spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.connection-timeout=30000

Probieren Sie die obigen Änderungen nacheinander aus und stellen Sie sicher, dass Sie das Projekt neu starten, um zu sehen, ob das Problem behoben wurde. Wenn das Problem weiterhin besteht, posten Sie die neuen Fehlermeldungen für weitergehende Unterstützung.
Ich habe das schon probiert, mir wird folgende Fehler geworfen, wenn ich die H2Dialect entferne:

HTML:
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/

 :: Spring Boot ::                (v3.3.1)

2024-07-08T11:50:38.645+02:00  INFO 9448 --- [Date4u] [  restartedMain] com.example.project.Date4uApplication        : Starting Date4uApplication using Java 17.0.7 with PID 9448 (C:\Users\iRahi\eclipse-workspace\Date4u\target\classes started by iRahi in C:\Users\iRahi\eclipse-workspace\Date4u)
2024-07-08T11:50:38.656+02:00  INFO 9448 --- [Date4u] [  restartedMain] com.example.project.Date4uApplication        : No active profile set, falling back to 1 default profile: "default"
2024-07-08T11:50:38.736+02:00  INFO 9448 --- [Date4u] [  restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
2024-07-08T11:50:38.736+02:00  INFO 9448 --- [Date4u] [  restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
2024-07-08T11:50:39.953+02:00  INFO 9448 --- [Date4u] [  restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2024-07-08T11:50:39.985+02:00  INFO 9448 --- [Date4u] [  restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 17 ms. Found 0 JPA repository interfaces.
2024-07-08T11:50:41.130+02:00  INFO 9448 --- [Date4u] [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port 8080 (http)
2024-07-08T11:50:41.149+02:00  INFO 9448 --- [Date4u] [  restartedMain] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2024-07-08T11:50:41.150+02:00  INFO 9448 --- [Date4u] [  restartedMain] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.25]
2024-07-08T11:50:41.228+02:00  INFO 9448 --- [Date4u] [  restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2024-07-08T11:50:41.232+02:00  INFO 9448 --- [Date4u] [  restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2492 ms
2024-07-08T11:50:41.281+02:00  INFO 9448 --- [Date4u] [  restartedMain] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2024-07-08T11:50:42.577+02:00  INFO 9448 --- [Date4u] [  restartedMain] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [name: default]
2024-07-08T11:50:42.667+02:00  INFO 9448 --- [Date4u] [  restartedMain] org.hibernate.Version                    : HHH000412: Hibernate ORM core version 6.5.2.Final
2024-07-08T11:50:42.714+02:00  INFO 9448 --- [Date4u] [  restartedMain] o.h.c.internal.RegionFactoryInitiator    : HHH000026: Second-level cache disabled
2024-07-08T11:50:43.102+02:00  INFO 9448 --- [Date4u] [  restartedMain] o.s.o.j.p.SpringPersistenceUnitInfo      : No LoadTimeWeaver setup: ignoring JPA class transformer
2024-07-08T11:50:43.139+02:00  INFO 9448 --- [Date4u] [  restartedMain] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2024-07-08T11:50:44.149+02:00  WARN 9448 --- [Date4u] [  restartedMain] o.h.e.j.e.i.JdbcEnvironmentInitiator     : HHH000342: Could not obtain connection to query metadata

java.lang.NullPointerException: Cannot invoke "org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(java.sql.SQLException, String)" because the return value of "org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.sqlExceptionHelper()" is null
    at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:116) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:290) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:123) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:77) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.boot.model.relational.Database.<init>(Database.java:45) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:221) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:189) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:171) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1431) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1502) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75) ~[spring-orm-6.1.10.jar:6.1.10]
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) ~[spring-orm-6.1.10.jar:6.1.10]
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ~[spring-orm-6.1.10.jar:6.1.10]
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) ~[spring-orm-6.1.10.jar:6.1.10]
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) ~[spring-orm-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1835) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1784) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:952) ~[spring-context-6.1.10.jar:6.1.10]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) ~[spring-context-6.1.10.jar:6.1.10]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.3.1.jar:3.3.1]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.3.1.jar:3.3.1]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.3.1.jar:3.3.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.3.1.jar:3.3.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) ~[spring-boot-3.3.1.jar:3.3.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) ~[spring-boot-3.3.1.jar:3.3.1]
    at com.example.project.Date4uApplication.main(Date4uApplication.java:10) ~[classes/:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
    at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-3.3.1.jar:3.3.1]

2024-07-08T11:50:44.168+02:00 ERROR 9448 --- [Date4u] [  restartedMain] j.LocalContainerEntityManagerFactoryBean : Failed to initialize JPA EntityManagerFactory: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided)
2024-07-08T11:50:44.169+02:00  WARN 9448 --- [Date4u] [  restartedMain] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided)
2024-07-08T11:50:44.189+02:00  INFO 9448 --- [Date4u] [  restartedMain] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2024-07-08T11:50:44.217+02:00  INFO 9448 --- [Date4u] [  restartedMain] .s.b.a.l.ConditionEvaluationReportLogger :

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2024-07-08T11:50:44.252+02:00 ERROR 9448 --- [Date4u] [  restartedMain] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1788) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:952) ~[spring-context-6.1.10.jar:6.1.10]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) ~[spring-context-6.1.10.jar:6.1.10]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.3.1.jar:3.3.1]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.3.1.jar:3.3.1]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.3.1.jar:3.3.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.3.1.jar:3.3.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) ~[spring-boot-3.3.1.jar:3.3.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) ~[spring-boot-3.3.1.jar:3.3.1]
    at com.example.project.Date4uApplication.main(Date4uApplication.java:10) ~[classes/:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
    at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-3.3.1.jar:3.3.1]
Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:276) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.boot.model.relational.Database.<init>(Database.java:45) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:221) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:189) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:171) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1431) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1502) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75) ~[spring-orm-6.1.10.jar:6.1.10]
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) ~[spring-orm-6.1.10.jar:6.1.10]
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ~[spring-orm-6.1.10.jar:6.1.10]
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) ~[spring-orm-6.1.10.jar:6.1.10]
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) ~[spring-orm-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1835) ~[spring-beans-6.1.10.jar:6.1.10]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1784) ~[spring-beans-6.1.10.jar:6.1.10]
    ... 20 common frames omitted
Caused by: org.hibernate.HibernateException: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided)
    at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:191) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:87) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentWithDefaults(JdbcEnvironmentInitiator.java:152) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:362) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:123) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:77) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ~[hibernate-core-6.5.2.Final.jar:6.5.2.Final]
    ... 35 common frames omitted
wie du siehst, dann bekommt man noch viel mehr Fehlermeldungen und alles hängt noch dazu.
 
wie du siehst, dann bekommt man noch viel mehr Fehlermeldungen und alles hängt noch dazu

Aus der Antwort des Benutzers geht hervor, dass der ursprüngliche Fehler weiterhin besteht und das Entfernen der Zeile spring.jpa.database-platform=org.hibernate.dialect.H2Dialect dazu führt, dass das System abstürzt.

### Weitere Lösungsansätze

#### 1. Datenbankverbindung überprüfen
Stellen Sie sicher, dass die H2-Datenbank korrekt läuft und erreichbar ist. Verwenden Sie das H2-Console-Tool, um die Erreichbarkeit der Datenbank zu prüfen:
Code:
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
Gehen Sie zu http://localhost:8080/h2-console und melden Sie sich mit den in application.properties definierten Anmeldeinformationen an.

#### 2. Abhängigkeiten überprüfen
Stellen Sie sicher, dass alle relevanten Abhängigkeiten in der pom.xml Datei definiert und korrekt sind. Zum Beispiel:
XML:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

#### 3. spring.jpa.database-platform weglassen
Aktuell ist die verwendete Konfiguration folgendermaßen:
Code:
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
Da H2Dialect für Hibernate nicht mehr empfohlen wird, entfernen Sie diese Konfiguration und testen Sie erneut. Lassen Sie Hibernate die Standard-DIALEKTERKENNUNG übernehmen.

#### 4. JDBC-URL Format
Stellen Sie sicher, dass die JDBC-URL das richtige Format hat:
Code:
spring.datasource.url=jdbc:h2:file:E:/stack/h2/unicorns;DB_CLOSE_ON_EXIT=FALSE;AUTO_RECONNECT=TRUE
Das Hinzufügen von DB_CLOSE_ON_EXIT=FALSE und AUTO_RECONNECT=TRUE kann helfen, die Verbindung stabil zu halten.

#### 5. Eigene Hibernate Konfiguration
Überprüfen Sie, ob eine eigene Hibernate-Konfiguration existiert und ob diese korrekt konfiguriert ist. Eine hibernate.cfg.xml Datei kann ebenfalls Konfigurationsprobleme verursachen.

### Aktualisierte application.properties:
Versuchen Sie folgende Anpassungen:
Code:
spring.application.name=Date4u
spring.datasource.url=jdbc:h2:file:E:/stack/h2/unicorns;DB_CLOSE_ON_EXIT=FALSE;AUTO_RECONNECT=TRUE
spring.datasource.username=user
spring.datasource.password=pass
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.datasource.driver-class-name=org.h2.Driver
spring.data.rest.base-path=/api
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

# Debug Logging
logging.level.org.hibernate=DEBUG
logging.level.org.springframework=DEBUG

### Nächste Schritte:
1. Stellen Sie sicher, dass die Datenbank über die H2-Console erreichbar und die Datenbankdatei vorhanden ist.
2. Stellen Sie sicher, dass keine hibernate.cfg.xml Datei auf dem Projektpfad vorhanden ist oder dass diese richtig konfiguriert ist.
3. Überprüfen Sie, ob andere Teile des Codes oder andere Properties Dateien möglicherweise spring.jpa.database-platform überschreiben.

Posten Sie die neuen Logs, nachdem Sie diese Änderungen durchgeführt haben, um eine detaillierte Analyse zu ermöglichen. Wenn weiterhin Probleme bestehen, könnten spezifische Logs oder ein minimaler Beispielcode helfen, das Problem zu isolieren.
 

LimDul

Top Contributor
Redest du jetzt über eine Datenbank, die in das Projekt integriert ist? Das wäre cool, im Internet finde ich kaum was dazu, vielleicht verwende ich falsche Stichpunkte.
Ich habe einen Tomcat Server und dafür möchte ich auf eine Datenbank zugreifen, die sich in anderem Laufwerk befindet. Was das H2Dialect angeht, es steht man kann es entfernen, da es per default eingefügt wird.
So wie du es konfiguriert hast, greifst nicht auf ein laufwerk zu. Sondern per TCP/IP auf einen H2-Server. Das heißt, damit diese URL funktioniert musst du einen H2-Server starten, der entsprechend die Anfragen entgegen nimmt.
 

ExceptionOfExpectation

Bekanntes Mitglied
Jetzt funktioniert das, absolut Fehlerfrei und dabei habe ich das Problem verstanden.
Dein Vorschlag h2-console einzubinden hat mir dabei geholfen. Es lag daran, dass ich aus dem vorherigen Projekt mit h2-console eine andere offene Datenbank hatte und jedes Mal, wenn ich Maven Clean Befehl ausgeführt habe, bekam ich als eine Anzeige einen Benutzer oder die Datenbank selbst aus dem anderen Projekt.
Deshalb grief SpringBoot auf die falsche Datenbank, das habe ich korrigiert. Hinzu kommt, dass ich in meiner application.properties File einen Schreibfehler hatte. Am ende habe ich trotzdem die alte Fehlermeldung angezeigt bekommen und H2Dialect lies sich auch nicht entfernen. Dann habe ich den CLEAN Vorgang neu gestartet und alles funktionierte Prima. H2Dialect kann entfernt werden, die Fehlermeldung ist auch weg. Voller Erfolg
Danke
 
Zuletzt bearbeitet:

ExceptionOfExpectation

Bekanntes Mitglied
So wie du es konfiguriert hast, greifst nicht auf ein laufwerk zu. Sondern per TCP/IP auf einen H2-Server. Das heißt, damit diese URL funktioniert musst du einen H2-Server starten, der entsprechend die Anfragen entgegen nimmt.
Am Ende funktioniert nur diese Variante:
jdbc:h2:tcp:/E:/Fullstack/h2/unicorn
Diese zwei brechen alles zusammen:
jdbc:h2:tcp://localhost:8080/E:/Fullstack/h2/unicorn
jdbc:h2:file:/E:/Fullstack/h2/unicorn
 

KonradN

Super-Moderator
Mitarbeiter
Am Ende funktioniert nur diese Variante:
jdbc:h2:tcp:/E:/Fullstack/h2/unicorn
Diese zwei brechen alles zusammen:
jdbc:h2:tcp://localhost:8080/E:/Fullstack/h2/unicorn
jdbc:h2:file:/E:/Fullstack/h2/unicorn
Hier ist halt die Information wichtig, wie die Umgebung bei Dir aussieht:

jdbc:h2:tcp:/E:/Fullstack/h2/unicorn
Hier wird ein H2 Server auf dem default Port per tcp angesprochen um auf die angegebene Datenbank zuzugreifen. Dies setzt voraus, dass der H2 Server läuft und erreichbar ist. Also z.B. über einen Start wie:
java -cp h2-1.4.200.jar org.h2.tools.Server -tcp

jdbc:h2:tcp://localhost:8080/E:/Fullstack/h2/unicorn
Hier wird der Server auf localhost angesprochen auf Port 8080. Also im Gegensatz zu dem ersten Connection String ist hier der Port anders (8080).
Wenn der erste Connection String funktionierte und dieser nicht, dann liegt das einfach daran, dass der Server auf Port 9092 hört und nicht auf 8080.

jdbc:h2:file:/E:/Fullstack/h2/unicorn
Hier wird kein Server Prozess benötigt. Statt dessen wird direkt auf die Datenbankdateien zugegriffen. Hier ist die Einschränkung, dass nur ein Prozess auf einmal auf die Datenbank zugreifen kann. Wenn dies nicht geklappt hat, dann liegt das vermutlich einfach daran, dass bereits ein anderer Prozess zugreift.

==> Du solltest Wissen, wie Deine Umgebung aufgebaut ist. Wo was läuft und worauf Du zugreifen willst. Ohne die Informationen kann man nur sehr wenig helfen und allgemeines Wissen weiter geben. Und es ist wichtig, dass man Dinge, die man setzt, auch versteht. Diese Konfigurationen haben ja eine Bedeutung und die sollte klar sein.
 

ExceptionOfExpectation

Bekanntes Mitglied
Hier ist halt die Information wichtig, wie die Umgebung bei Dir aussieht:

jdbc:h2:tcp:/E:/Fullstack/h2/unicorn
Hier wird ein H2 Server auf dem default Port per tcp angesprochen um auf die angegebene Datenbank zuzugreifen. Dies setzt voraus, dass der H2 Server läuft und erreichbar ist. Also z.B. über einen Start wie:
java -cp h2-1.4.200.jar org.h2.tools.Server -tcp

jdbc:h2:tcp://localhost:8080/E:/Fullstack/h2/unicorn
Hier wird der Server auf localhost angesprochen auf Port 8080. Also im Gegensatz zu dem ersten Connection String ist hier der Port anders (8080).
Wenn der erste Connection String funktionierte und dieser nicht, dann liegt das einfach daran, dass der Server auf Port 9092 hört und nicht auf 8080.

jdbc:h2:file:/E:/Fullstack/h2/unicorn
Hier wird kein Server Prozess benötigt. Statt dessen wird direkt auf die Datenbankdateien zugegriffen. Hier ist die Einschränkung, dass nur ein Prozess auf einmal auf die Datenbank zugreifen kann. Wenn dies nicht geklappt hat, dann liegt das vermutlich einfach daran, dass bereits ein anderer Prozess zugreift.

==> Du solltest Wissen, wie Deine Umgebung aufgebaut ist. Wo was läuft und worauf Du zugreifen willst. Ohne die Informationen kann man nur sehr wenig helfen und allgemeines Wissen weiter geben. Und es ist wichtig, dass man Dinge, die man setzt, auch versteht. Diese Konfigurationen haben ja eine Bedeutung und die sollte klar sein.
In meinem Buch stand, es sollte Port:8080 aufgerufen werden und nicht 9092. Ich habe den Port geändert und es hat funktioniert.
Meine Umgebung ist eigentlich sehr simple Ich verwende H2-Console. Da ich noch Visual Studio Code verwende, hat sich mein H2-COnsolen Port geändert von 8080 zu 8082. Deshalb hatte ich andauernd diesen String Fehler. Wo ich aber auf das richtige Port konfiguriert habe, dann hat es so funktioniert, wie es von Anfang an sollte.
 

LimDul

Top Contributor
H2Console != H2 Datenbank Server.

Die Console ist ein Webserver, über den du auf H2 Datenbanken schauen kannst. Der läuft auf 8080. Der H2 Server über den sich Anwendungen zur Datenbank verbinden können, läuft auf einem anderen Port.
 

Oneixee5

Top Contributor
Redest du jetzt über eine Datenbank, die in das Projekt integriert ist? Das wäre cool, im Internet finde ich kaum was dazu, ...
Soll das ein Witz sein? Wenn ich bei Google eine Suche eingebe: "spring boot h2 db configuration" und auf letztes Jahr einschränke, dann bekomme ich: Ungefähr 21.800 Ergebnisse - Ich würde sagen, dass ist etwas mehr als "kaum was dazu".
 

ExceptionOfExpectation

Bekanntes Mitglied
Ich habe jetzt soweit alles befolgt und eine h2 In-Memory-Bank konfiguriert mit der folgende url:
jdbc:h2:mem:/~/ecommerceapp
SpringBoot meldet jeden Zugriff den ich durch die h2-console betätige und die Datenbank beinhaltet Werte. Aber wenn ich auf die Endpoints versuche zu zugreifen, dann wird mir der leere Inhalt vorgegeben, genau dasselbe mit dem Postman App, die Endpoints beinhalten keine Werte, voran kann das liegen?
Java:
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
import de.irahi.ecommerce.entity.ProductCategory;


@RepositoryRestResource(collectionResourceRel = "productCategory", path = "product-category")
public interface ProductCategoryRepository extends JpaRepository<ProductCategory, Long> {

}
-----------------------------------------------------
import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;

import de.irahi.ecommerce.entity.Product;

public interface ProductRepository extends JpaRepository<Product, Long> {
    

}
bei dem aufruf von, sagen wir für das Beispiel: http://localhost:8080/api/products bekomme ich folgende Ausgabe:

Code:
{
  "_embedded" : {
    "products" : [ ]
  },
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/api/products?page=0&size=20"
    },
    "profile" : {
      "href" : "http://localhost:8080/api/profile/products"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 0,
    "totalPages" : 0,
    "number" : 0
  }
}
Ich kann mir es nicht erklären, denn die Datenbank beinhaltet Werte.
 

LimDul

Top Contributor
Ich würde dir empfehlen dich mit den Grundlagen noch was mehr zu beschäftigen.

jdbc:h2:mem:/~/ecommerceapp
Was soll das /~/ecommerceapp da? Du hast eine In-Memory Datenbank. In-Memory = Nicht Auf der Platte. Warum gibst du da einen Pfad an? Der ergibt überhaupt keinen Sinn.

Dann kommt hinzu, In-Memory lebt nur im Speicher. Das heißt man kann nicht einfach den Speicher einer anderen Anwendung zugreifen:

Sometimes multiple connections to the same in-memory database are required. In this case, the database URL must include a name. Example: jdbc:h2:mem:db1. Accessing the same database using this URL only works within the same virtual machine and class loader environment.

Sprich, ich vermute ganz stark, die In-Memory Datenbank die du mit der H2-Console öffnest ist schlicht eine andere, als die die deine Anwendung aufmacht. Wie startest du die H2-Console? Wenn es die in Spring integrierte ist, könnte es gehen - ansonsten geht es zu 100% nicht.
 

LimDul

Top Contributor
Am besten das hier mal gründlich lesen:

Ja, es ist viel Stoff. Aber es ist halt relevant

Meine Empfehlung wäre anstelle Dinge random auszuprobieren wäre, zum einen die Doku mal durchzuarbeiten und dann aufzuschreiben Was du eigentlich möchtest. Wie soll deine Datenbank zugreifbar sein? Soll sie persistiert werden? Sollen mehrere Clients drauf zugreifen?
 

ExceptionOfExpectation

Bekanntes Mitglied
Am besten das hier mal gründlich lesen:

Ja, es ist viel Stoff. Aber es ist halt relevant

Meine Empfehlung wäre anstelle Dinge random auszuprobieren wäre, zum einen die Doku mal durchzuarbeiten und dann aufzuschreiben Was du eigentlich möchtest. Wie soll deine Datenbank zugreifbar sein? Soll sie persistiert werden? Sollen mehrere Clients drauf zugreifen?
Mein Problem lag darin, dass meine Entity Eigenschaften falsch abgebildet waren (Schreibfehler). Daraufhin habe ich mit allen Url-Schreibvarianten losgelegt. Das SpringBoot ist bei der Fehlerbeschreibung nicht genau darauf eingegangen, weil mein Versuch auf ein anderes Laufwerk zu zugreifen, nichts geliefert hat, weil es Probleme gab mit dem Doppelpunkt Zeichen ":" bei der Laufwerkzuweisung.
Deshalb habe ich an der falschen Stelle gesucht, ich habe alles dumm durchprobiert. Jetzt funktionieren auch meine Rest Endpunkte.
Ich würde dir empfehlen dich mit den Grundlagen noch was mehr zu beschäftigen.


Was soll das /~/ecommerceapp da? Du hast eine In-Memory Datenbank. In-Memory = Nicht Auf der Platte. Warum gibst du da einen Pfad an? Der ergibt überhaupt keinen Sinn.

Dann kommt hinzu, In-Memory lebt nur im Speicher. Das heißt man kann nicht einfach den Speicher einer anderen Anwendung zugreifen:



Sprich, ich vermute ganz stark, die In-Memory Datenbank die du mit der H2-Console öffnest ist schlicht eine andere, als die die deine Anwendung aufmacht. Wie startest du die H2-Console? Wenn es die in Spring integrierte ist, könnte es gehen - ansonsten geht es zu 100% nicht.
Ich habe eben allen Varianten ausprobiert, als ich das Fehler weg bekam, merkte ich, dass alle Varianten gut funktionieren. Ich verwende die H2 Datenbank vom Server.
Ich weiß, dass In-Memory-Datenbank nichts dauerhaft speichert und Embedded Datenbank in das Projekt integriert wird, aber ich wollte eben nichts unversucht lassen. Langsam bin ich auf die Schliche gekommen.
 
Zuletzt bearbeitet:


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...

Neue Themen


Oben