Saltar al contenido

Utilice SAP HANA como la base de datos para la aplicación Java

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.

  1. Vuelve al Explorador de archivos haciendo clic en el icono correspondiente.

  2. Pon el pom.xml sa srv directorio (no el pom.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>
    

  3. Antes de iniciar su aplicación, asegúrese de detener cualquier instancia actual en la terminal o en el panel lateral de depuración.

  4. 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
    
  5. 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 el application.yaml, no está activado.

    Puedes observar las líneas de registro Loaded default-env.json from directory '/home/user/projects/bookstore' y Registered primary 'DataSource' bean definition for connected service 'bookstore-hana', que indica que se ha seleccionado la configuración de SAP HANA.

    salida de registro de archivo env predeterminado

  6. 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.

  7. 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"}]}