En lugar de iniciar la base de datos de SAP HANA, el cds deploy
creó un comando de archivo con el nombre default-env.json
hago bookstore
carpeta raíz. Este archivo contiene un conjunto de credenciales para conectarse al contenedor SAP HANA HDI, que creó el comando. CAP Java puede extraer automáticamente las credenciales de SAP HANA de este archivo y configurar la aplicación que se ejecuta localmente para usar el contenedor SAP HANA HDI como base de datos.
Al implementar la aplicación en la nube, Cloud Foundry proporcionará las credenciales como un servicio que se une a la aplicación a través de la API de Open Service Broker. También en este caso, CAP Java tomará automáticamente las credenciales de SAP HANA y configurará la aplicación por usted, como verá en el siguiente tutorial.
Las funciones descritas están disponibles como complemento en CAP Java. Por lo tanto, agregaremos una dependencia adicional de Maven a su proyecto. La dependencia permitirá leer las conexiones del servicio SAP HANA desde default-env.json para configurar automáticamente la conectividad SAP HANA. Además, incluye el controlador SAP HANA JDBC.
Vuelve al Explorador de archivos haciendo clic en el icono correspondiente.
Pon el
pom.xml
sasrv
directorio (no elpom.xml
archivo ubicado en la carpeta raíz del proyecto) y agregue la siguiente dependencia en<dependencies>
etiqueta y asegúrate de Salvar el archivo:<dependency> <groupId>com.sap.cds</groupId> <artifactId>cds-feature-hana</artifactId> </dependency>
Antes de iniciar su aplicación, asegúrese de detener cualquier instancia actual en la terminal o en el panel lateral de depuración.
Asegúrese de estar en la raíz del proyecto de la librería. Por lo tanto, ejecute el siguiente comando en la terminal:
cd ~/projects/bookstore
Probemos la conectividad de SAP HANA. Inicie su aplicación ejecutando:
mvn spring-boot:run -Dspring-boot.run.profiles=cloud
Propiedad del sistema Java
-Dspring-boot.run.profiles=cloud
asegura que la configuración predeterminada se realiza utilizando SQLite como base de datos, que todavía está definida en elapplication.yaml
, no está activado.Puedes observar las líneas de registro
Loaded default-env.json from directory '/home/user/projects/bookstore'
yRegistered primary 'DataSource' bean definition for connected service 'bookstore-hana'
, que indica que se ha seleccionado la configuración de SAP HANA.Pruebe la siguiente solicitud de ejemplo, que crea un pedido junto con sus artículos mediante inserción profunda. Abra una nueva terminal seleccionando Terminal > Nueva terminal desde el menú principal.
Crea un nuevo pedido con artículos:
curl -X POST http://localhost:8080/odata/v4/OrdersService/Orders -H "Content-Type: application/json" -d '{ "currency_code": "USD", "items": [ { "book_ID": "b7bca6dd-0497-465e-9a5a-56f244174c8c", "amount": 1 } ] }'
La salida esperada debe ser el registro de base de datos creado similar al siguiente:
{"@context":"$metadata#Orders(items())/$entity","ID":"67213f57-0b4c-43fc-8ed9-44f87ffb8967","createdAt":"2020-03-30T13:22:37Z","createdBy":"anonymous","modifiedAt":"2020-03-30T13:22:37Z","modifiedBy":"anonymous","total":14.14,"currency_code":"USD","items":[{"ID":"6352853e-f8e0-43b0-9c38-e15eb56a57ae","book_ID":"b7bca6dd-0497-465e-9a5a-56f244174c8c","amount":1,"netAmount":14.14,"parent_ID":"67213f57-0b4c-43fc-8ed9-44f87ffb8967"}]}