Saltar al contenido

Spring Boot + IntelliJ + Base de datos integrada = Dolor de cabeza

No dejes de compartir nuestra web y códigos con otro, danos de tu ayuda para ampliar nuestra comunidad.

Solución:

El modo mixto automático H2 debería estar bien para usted. Usar jdbc:h2:~/mydbInHomeDir;AUTO_SERVER=TRUE como tu spring.datasource.url. En IntelliJ, cree un remoto Fuente de datos H2 y use exactamente la misma URL de JDBC. Es posible que deba presionar explícitamente el botón Sincronizar en la ventana Base de datos de IntelliJ para que aparezcan las tablas de la base de datos.

Para agregar a lo heenenee mencionado anteriormente. Si no especifica AUTO_SERVER, solo se permitirá una conexión a su instancia H2.

Estoy usando spring-boot con spring-data-jpa. Asegúrese de tener @Entity declarado para sus entidades que representan cada tabla.

Lo siguiente es mi application.yml / application.properties

spring.datasource.url: 
jdbc:h2:file:/Users/blah[![enter image description here][1]][1]/db/vlad4;AUTO_SERVER=TRUE
spring.datasource.username: sa
spring.datasource.password:

spring:
  jpa:
    hibernate:
      ddl-auto: create #will create schema based on entities
    show-sql: true

Inicie su aplicación e importe algunos datos en ella. Spring Boot importará automáticamente sus datos si tiene import.sql en el classpath, por ejemplo: /src/main/resources/import.sql

Configura tu IntelliJ así
ingrese la descripción de la imagen aquí

Si no está utilizando IntelliJ, descargue el combo servidor/cliente @ http://www.h2database.com/html/download.html, extráigalo e inicie el cliente basado en navegador usando:

h2/bin: java -cp h2*.jar org.h2.tools.Server

Conéctese a su base de datos incrustada especificando la conexión string:
ingrese la descripción de la imagen aquí

Tuve un problema similar. Fue por defecto create-drop estrategia ddl de la hibernación. Con esta estrategia, después del cierre de la aplicación, Hibernate destruye el esquema al final de la sesión, es por eso que IntelliJ no muestra nada. Cambie la estrategia ddl a la create e hibernate creará el esquema y destruirá los datos anteriores en el próximo inicio de la aplicación.

Aquí hay un ejemplo de mi configuración:

aplicación.yml

spring:
  datasource.url: jdbc:h2:./db/testDb
  jpa.hibernate.ddl-auto: create

Propiedades de la base de datos IntelliJ

ingrese la descripción de la imagen aquí

Resultado

ingrese la descripción de la imagen aquí

No se te olvide difundir esta crónica si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *