¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Configuración de base de datos H2 en memoria para proyecto Java SAP CAP: Solución a excepción Table LOCALIZED_SAP_CAPIRE_BOOKSHOP_BOOKS not found

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 27 Vistas
0
Cargando...

Estoy intentando configurar una base de datos h2 en memoria en lugar de utilizar el sqlite por defecto en un proyecto java sap cap.
Para hacerlo, comenté la dependencia por defecto sqlite-jdbc dentro del archivo srv/pom.xml y añadí com.h2database.

También configuré el application.yaml de la siguiente manera:

datasource:    url: jdbc:h2:mem:testdb  driver-class-name: org.h2.Driver  username: sa  password:jpa:  database-platform: org.hibernate.dialect.H2Dialect  hibernate:     ddl-auto: create-drop

Recibo una serie de excepciones al ejecutar mvn spring-boot:run relacionadas con
org.h2.jdbc.JdbcSQLSyntaxErrorException : Table "LOCALIZED_SAP_CAPIRE_BOOKSHOP_BOOKS" not found

El proyecto funciona perfectamente bien con sqlite por defecto.
¿Cómo lo configuro para H2?

Gracias,
Sumeet

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola Mark, ahora está funcionando correctamente ahora que estoy utilizando el dialecto correcto.

¡Gracias!

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

richard.pellerin : ¿Qué versión de @sap/cds-dk estás utilizando? El SQL compatible con H2 solo es compatible a partir de @sap/cds-dk ^4. Asegúrate también de configurar el dialecto SQL como "plain", como se describe aquí: https://cap.cloud.sap/docs/java/development/#h2 . Con la próxima versión @sap/cds-dk 4.2.x (aún no lanzada), esto se configurará automáticamente al usar la opción "to --sql" con el comando "cds deploy", pero por el momento aún es necesario.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Marc, vi que la aplicación de muestra ahora está utilizando H2.

En mi proyecto, no obtengo las instrucciones de creación/borrado de tablas, solo las vistas en schema.sql cuando uso "deploy --to sql --dry". ¿Hay algo especial que deba hacer?

Gracias

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Este es un problema conocido con H2 (y actualmente la razón principal por la cual promovemos sqlite sobre h2).

Las vistas en el schema.sql que es generado por el compilador CDS durante la construcción no están ordenadas de una manera que el schema.sql pueda ser utilizado con H2. Algunas vistas están definidas antes de que se definan sus vistas/tablas dependientes, lo que crea problemas en H2.

Este problema ya está siendo abordado internamente y se solucionará en futuras versiones. Hasta entonces, básicamente necesitas ordenar las definiciones de vista en tu schema.sql de alguna manera (automatizada) por ti mismo, si deseas utilizar H2.

Mantente atento a las notas de lanzamiento y a nuestra aplicación de muestra . Una vez que se aborde este problema, planeamos cambiar nuestra muestra de Java de sqlite a H2 también.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?