Java

Uso de Spring Data Couchbase en una aplicación CDI

Si está en el espacio JEE y desea una capa de gestión de datos moderna para su Aplicaciones NoSqlpuede que te encuentres rápidamente limitado. Hay algunos proyectos interesantes como Hibernar OGM o Deltaspikepero ninguno de ellos soporta Couchbase y son tan avanzados como Spring Data.

Pero todo está bien porque los proyectos Spring Data tienen extensiones CDI. Lo que significa que puedes usarlos en contenedores JEE. Traer otro marco DI como Spring conlleva cierta sobrecarga ya que CDI ya está aquí, pero vale la pena la sobrecarga cuando se obtiene toda la bondad que viene de Spring Data.

Veamos cómo funciona. Utilizaré el ejemplo hibernate5 disponible en las guías rápidas de wildfly y reemplazaré Hibernate Core por Spring Data Couchbase. El código original se encuentra en aquí y código final migrado aquí.

Conexión a Couchbase con CDI

Lo primero que querrás configurar es una conexión a un cluster de Couchbase. Como estás usando CDI, puedes crear un @Producer. No voy a entrar en detalles sobre cómo puedes externalizar las propiedades de la dirección IP, el nombre del bucket, el login de administrador y la contraseña. Utilizaré los valores por defecto. Si no proporcionas ninguna dirección o nombre de bucket, el SDK asume que tienes Couchbase Server corriendo en localhost con un bucket llamado default.

Esto debería darte todo lo que necesitas para tener repositorios Couchbase funcionando. Ten en cuenta que hay un error en la última versión de Soldar. Así que puedes tener problemas. Se puede encontrar una solución rápida aquí. Básicamente el problema es que Weld ha cambiado la forma de almacenar los calificadores, que ya no es compatible con el método de búsqueda Bean (basado en calificadores). Así que lo arreglé temporalmente cambiando la forma en que se procesan las anotaciones en la extensión CDI directamente. El código de ejemplo tiene este aspecto:

Es muy probable que se encuentre con este error si utiliza Wildfly 10 o Jboss EAP 7.

Integrar el repositorio de Spring

Una vez que tengas tu productor para la clase CouchbaseOperations, puedes empezar a crear repositorios. No tienes que implementar nada, lo cual es parte de la belleza de Spring Data. Sólo tienes que crear una interfaz que extienda la clase CouchbasePagingAndSortingRepository especificando la clase de Entidad que desea gestionar así como el tipo de la clave. En el ejemplo es . Lo que significa que el repositorio almacena las entidades Members usando un Largo como llave.

Simplemente añadiré un método llamado findAll que toma un valor Ordenar como parámetro.

Esto requiere un cambio en el MemberListProducer utilizar ese método concreto. A Ordenar le permite definir el objeto Ordenar así como los campos que se utilizarán para la dirección Ordenar.

Ahora deberías estar listo para desplegar ese proyecto en tu contenedor JEE. Si utilizas Wildfly y el código en este repositorio githubpuede ejecutar mvn wildfly:deploy y vaya a la siguiente URL: https://localhost:8080/wildfly-springdata.

Si tienes algún problema o sugerencia, háznoslo saber en la sección de comentarios.

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Laurent Doguin

Laurent es un metalero empollón que vive en París. Principalmente escribe código en Java y texto estructurado en AsciiDoc, y a menudo habla sobre datos, programación reactiva y otras cosas de moda. También fue Developer Advocate de Clever Cloud y Nuxeo, donde dedicó su tiempo y experiencia a ayudar a esas comunidades a crecer y fortalecerse. Ahora dirige las relaciones con los desarrolladores en Couchbase.

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.