Spring Data Azure Cosmos DB v2 para la API para NoSQL (heredada): notas de la versión y recursos

SE APLICA A: NoSQL

Spring Data Azure Cosmos DB (versión 2) para NoSQL permite a los desarrolladores utilizar Azure Cosmos DB en aplicaciones de Spring. Spring Data Azure Cosmos DB expone la interfaz de Spring Data para manipular las bases de datos y las colecciones, trabajar con documentos y emitir consultas. Las API sincrónicas y las API asincrónicas (reactivas) se admiten en el mismo artefacto Maven.

Advertencia

Esta versión del SDK de Spring Data Azure Cosmos DB depende de una versión retirada del SDK de Java de Azure Cosmos DB. Este SDK de Spring Data Azure Cosmos DB se anunciará como retirada en un futuro próximo. Esta no es la versión más reciente del SDK de Azure Spring Data Azure Cosmos DB para Azure Cosmos DB y no está actualizada. Debido a problemas de rendimiento e inestabilidad en el SDK V2 de Azure Spring Data Azure Cosmos DB, se recomienda encarecidamente usar Azure Spring Data Azure Cosmos DB v3 para el proyecto. Para actualizarla, siga las instrucciones de la guía Migración al SDK v4 para Java de Azure Cosmos DB para comprender la diferencia en el SDK V4 para Java subyacente.

Spring Framework es un modelo de programación y configuración que simplifica el desarrollo de aplicaciones Java. Spring simplifica las relaciones de las aplicaciones mediante la inserción dependencias. Son muchos los desarrolladores que prefieren Spring, ya que resulta más sencillo compilar y probar las aplicaciones. Spring Boot amplía este control de los recursos pensando en la implementación de microservicios y aplicaciones web. Spring Data es un modelo de programación para acceder a almacenes de datos como Azure Cosmos DB desde el contexto de una aplicación de Spring o Spring Boot.

Puede usar Spring Data Azure Cosmos DB en las aplicaciones hospedadas en Azure Spring Apps.

Importante

Estas notas de la versión corresponden a la versión 2 de Spring Data Azure Cosmos DB. Puede consultar las notas de la versión 3 aquí.

Spring Data Azure Cosmos DB solo admite la API para NoSQL.

Consulte estos artículos para más información sobre Spring Data en otras API de Azure Cosmos DB:

¿Desea empezar a trabajar rápidamente?

  1. Instale el entorno de ejecución de Java mínimo admitido, JDK 8, para poder usar el SDK.
  2. Cree una aplicación de Spring Data Azure Cosmos DB con la utilidad Starter. Es muy sencillo.
  3. Siga la Guía del desarrollador de Spring Data Azure Cosmos DB, donde encontrará instrucciones sobre las solicitudes básicas de Azure Cosmos DB.

Puede poner en marcha aplicaciones de Spring Boot Starter rápidamente con Spring Initializr.

Recursos

Recurso Vínculo
Descarga del SDK Maven
Documentación de la API Documentación de referencia de Spring Data Azure Cosmos DB
Contribuciones al SDK Repositorio de Spring Data Azure Cosmos DB en GitHub
Spring Boot Starter Biblioteca cliente de Azure Cosmos DB Spring Boot Starter para Java
Guía del desarrollador Guía del desarrollador de Spring Data Azure Cosmos DB
Uso de Starter Uso de la utilidad Spring Boot Starter con Azure Cosmos DB for NoSQL
Repositorio de GitHub para Azure Cosmos DB Spring Boot Starter
Ejemplo con Azure App Service Cómo usar Spring y Azure Cosmos DB con App Service en Linux

Historial de versiones

2.3.0 (21 de mayo de 2020)

Nuevas características

  • Se ha actualizado la versión de Spring Boot a 2.3.0.

2.2.5 (19 de mayo de 2020)

Nuevas características

  • Se ha actualizado la versión de Azure Cosmos DB a 3.7.3.

Correcciones de errores clave

  • Contiene correcciones de fuga de memoria y actualizaciones de versiones de Netty a partir de la versión 3.7.3 de Azure Cosmos DB SDK.

2.2.4 (6 de abril de 2020)

Correcciones de errores clave

  • Se ha corregido la marca allowTelemetry que debe tenerse en cuenta en CosmosDbConfig.
  • Se ha corregido la propiedad TTL del contenedor.

2.2.3 (25 de febrero de 2020)

Nuevas características

  • Se ha agregado un nuevo objeto findAll en cada API de clave de partición.
  • Versión de Azure Cosmos DB actualizada a 3.7.0.

Correcciones de errores clave

  • Correcciones collectionName: >containerName.
  • Correcciones entityClass y domainClass: >domainType.
  • Se ha corregido el error "Return entity collection saved by repository instead of input entity" ("Devolver colección de entidades guardada por el repositorio en lugar de la entidad de entrada").

2.1.10 (25 de febrero de 2020)

Correcciones de errores clave

  • Se ha corregido mediante retroimportación (backport) el error "Return entity collection saved by repository instead of input entity" ("Devolver colección de entidades guardada por el repositorio en lugar de la entidad de entrada").

2.2.2 (15 de enero de 2020)

Nuevas características

  • La versión de Azure Cosmos DB se ha actualizado a 3.6.0.

Correcciones de errores clave

2.2.1 (31 de diciembre de 2019)

Nuevas características

  • La versión de Azure Cosmos DB SDK se ha actualizado a 3.5.0.
  • Se ha agregado un campo de anotación para habilitar o deshabilitar la creación automática de colecciones.
  • Se ha mejorado el control de excepciones. CosmosClientException se expone mediante CosmosDBAccessException.
  • requestCharge y activityId se exponen mediante ResponseDiagnostics.

Correcciones de errores clave

  • La actualización 3.5.0 del SDK corrige el error "Exception when Cosmos DB HTTP response header is larger than 8192 bytes" ("Excepción cuando el encabezado de respuesta HTTP de Azure Cosmos DB es mayor que 8192 bytes"), "ConsistencyPolicy.defaultConsistencyLevel() fails on Bounded Staleness and Consistent Prefix" ["ConsistencyPolicy.defaultConsistencyLevel() produce un error en la obsolescencia limitada y prefijo coherente"].
  • Se ha corregido el comportamiento del método findById. Anteriormente, si no se encontraba la entidad, este método devolvía un valor vacío en lugar de generar una excepción.
  • Se ha corregido un error por el que no se aplicaba la ordenación en la página siguiente cuando se usaba CosmosPageRequest.

2.1.9 (26 de diciembre de 2019)

Nuevas características

  • Se ha agregado un campo de anotación para habilitar o deshabilitar la creación automática de colecciones.

Correcciones de errores clave

  • Se ha corregido el comportamiento del método findById. Anteriormente, si no se encontraba la entidad, este método devolvía un valor vacío en lugar de generar una excepción.

2.2.0 (21 de octubre de 2019)

Nuevas características

  • Compatibilidad completa del repositorio reactivo de Azure Cosmos DB.
  • Se admiten las métricas de consulta y de cadenas de diagnóstico de solicitud de Cosmos DB.
  • Se ha actualizado la versión de Cosmos DB SDK a 3.3.1.
  • Se ha actualizado la versión de Spring Framework a 5.2.0.VERSIÓN.
  • Se ha actualizado la versión de Spring Data Commons a 2.2.0.VERSIÓN.
  • Se han agregado las API findByIdAndPartitionKey y deleteByIdAndPartitionKey.
  • Se ha quitado la dependencia de azure-doumentdb.
  • El nombre DocumentDB se ha reemplazado por Azure Cosmos DB.

Correcciones de errores clave

  • Se ha corregido el error "Sorting throws exception when pageSize is less than total items in repository" ("La ordenación genera una excepción cuando pageSize es inferior a los elementos totales del repositorio").

2.1.8 (18 de octubre de 2019)

Nuevas características

  • Han dejado de utilizarse las API de DocumentDB.
  • Se han agregado las API findByIdAndPartitionKey y deleteByIdAndPartitionKey.
  • Se ha agregado un bloqueo optimista basado en _etag.
  • Se ha habilitado la expresión SpEL para el nombre de la colección de documentos.
  • Se han agregado mejoras de ObjectMapper.

2.1.7 (18 de octubre de 2019)

Nuevas características

  • Se ha agregado una dependencia a la versión 3 de Azure Cosmos DB SDK.
  • Se agrega un repositorio reactivo de Azure Cosmos DB.
  • Se ha actualizado la implementación de DocumentDbTemplate para usar la versión 3 de Azure Cosmos DB SDK.
  • Se han agregado otros cambios de configuración para permitir la compatibilidad con el repositorio reactivo de Azure Cosmos DB.

2.1.2 (19 de marzo de 2019)

Correcciones de errores clave

  • Se ha quitado la dependencia de applicationInsights por:
    • Riesgo potencial de contaminación de dependencias.
    • Incompatibilidad con Java 11.
    • Evitar el posible impacto en el rendimiento de la CPU o la memoria.

2.0.7 (20 de marzo de 2019)

Correcciones de errores clave

  • Se ha quitado mediante backport la dependencia de applicationInsights por:
    • Riesgo potencial de contaminación de dependencias.
    • Incompatibilidad con Java 11.
    • Evitar el posible impacto en el rendimiento de la CPU o la memoria.

2.1.1 (7 de marzo de 2019)

Nuevas características

  • La versión principal se ha actualizado a 2.1.1.

2.0.6 (7 de marzo de 2019)

Nuevas características

  • Se han omitido todas las excepciones de telemetría.

2.1.0 (17 de diciembre de 2018)

Nuevas características

  • Se ha actualizado a la versión 2.1.0 para solucionar un problema.

2.0.5 (13 de septiembre de 2018)

Nuevas características

  • Se han agregado las palabra clave exists y startsWith.
  • Se ha actualizado el archivo Léame.

Correcciones de errores clave

  • Se ha corregido el error "Can't call self href directly for Entity." ("No se puede llamar directamente al elemento self href de la entidad").
  • Se ha corregido el error "findAll will fail if collection is not created" ("findAll generará error si no se crea la colección").

2.0.4 (versión preliminar) (23 de agosto de 2018)

Nuevas características

  • El nombre del paquete documentdb ha cambiado a cosmosdb.
  • Se ha agregado una nueva característica para las palabras clave del método de consulta. Ahora se admiten 16 palabras clave en API para NoSQL.
  • Se ha agregado una nueva característica de consulta que permite paginar y ordenar.
  • Se ha simplificado la configuración de spring-data-cosmosdb.
  • Se han agregado las API deleteCollection y deleteAll.

Correcciones de errores clave

  • Se han corregido errores y mitigado defectos.

Preguntas más frecuentes

¿Cómo se me notificará de la retirada del SDK?

Microsoft le notificará 12 meses antes de la finalización del soporte técnico del SDK que se retira para facilitar una transición sin problemas a un SDK compatible. Se le notificará a través de diversos canales de comunicación: Azure Portal, actualizaciones de Azure y comunicación directa a los administradores de servicios asignados.

¿Puedo crear aplicaciones con un SDK de Azure Cosmos DB que se retirará durante el período de 12 meses?

Sí, podrá crear, implementar y modificar aplicaciones mediante el SDK de Azure Cosmos DB que se retirará durante el período de aviso de 12 meses. Se recomienda que migre a una versión compatible más reciente del SDK de Azure Cosmos DB durante el período de aviso de 12 meses, según corresponda.

Tras la fecha de retirada, ¿qué ocurre con las aplicaciones que usan el SDK de Azure Cosmos DB no compatible?

Después de la fecha de retirada, Azure Cosmos DB ya no hará correcciones de errores, ni agregará nuevas características, ni proporcionará soporte técnico para las versiones del SDK retiradas. Si prefiere no realizar la actualización, el servicio Azure Cosmos DB seguirá atendiendo las solicitudes enviadas desde las versiones retiradas del SDK.

¿Qué versiones del SDK tendrán las características y actualizaciones más recientes?

Se agregarán nuevas características y actualizaciones solo a la versión secundaria más reciente de la versión del SDK principal compatible más reciente. Se recomienda que use siempre la versión más reciente para aprovechar las ventajas de las nuevas características, mejoras de rendimiento y correcciones de errores. Si usa una versión anterior del SDK que no se haya retirado, las solicitudes realizadas a Azure Cosmos DB seguirán funcionando, pero no tendrá acceso a las nuevas funcionalidades.

¿Qué debo hacer si no puedo actualizar la aplicación antes de una fecha límite?

Se recomienda que actualice al SDK más reciente tan pronto como sea posible. Después de etiquetar un SDK para su retirada, tendrá 12 meses para actualizar la aplicación. Si no puede realizar la actualización en la fecha de retirada, Azure Cosmos DB seguirá atendiendo las solicitudes enviadas desde las versiones retiradas del SDK, por lo que las aplicaciones en ejecución seguirán funcionando. Aunque Azure Cosmos DB ya no hará correcciones de errores, ni agregará nuevas características ni proporcionará soporte técnico para las versiones del SDK retiradas.

Si tiene un plan de soporte técnico y requiere soporte técnico, póngase en contacto con nosotros al abrir una incidencia de soporte técnico.

¿Cómo puedo solicitar que se agreguen características a un SDK o conector?

No siempre se agregan de inmediato características nuevas a los SDK o conectores. Si no se admite una característica que le gustaría agregar, agregue comentarios a nuestro foro de la comunidad.

Pasos siguientes

Más información acerca de Azure Cosmos DB.

Más información sobre Spring Framework.

Más información sobre Spring Boot.

Más información sobre Spring Data.