Enjoy A New Student Discount All 55,000 Courses on sale for Only $12.99

Ends in 05h 23m 49s

Añadiendo un filtro de comprobación de existencia en tabla por anotaciones, en Spring

Nuevo artículo tratando esta posibilidad tan interesante que es crear una anotación para filtrar datos. En este caso, vamos a crear un filtro clásico que es comprobar si una clave existe en una tabla determinada, y para utilizarlo, solo deberemos añadir al campo que debe contener la clave la anotación: @CheckCineValidation.

Preparando la aplicación

Igual que hicimos en el articulo anterior, en donde creábamos un filtro de DNI, lo primero que debemos recordar es añadir la dependencia a nuestra aplicacion, que si estamos trabajando con SpringBoot y maven, será añadirle al pom.xml

y después ya podemos iniciar nuestro trabajo

Creación de la anotación @CheckCineValidation

Como vimos en el post anterior, para la creación de la anotación, lo primero es definir la interfaz con el nombre que queremos, en donde especificamos ya, tambien la clase que realizada la validación, que en este caso será CheckCineValidator.

CheckCineValidation.java

Como vimos en el caso anterior, definimos la anotacion indicando que:

  • se utiliza a nivel de campo (@Target( { FIELD, PARAMETER })),
  • la validación la hacemos en CheckCineValidator
  • El mensaje por defecto es «Se ha indicado un cine que no existe»

Realizando el filtro

Hemos dicho que la comprobación la haremos en CheckCineValidator, y, para eso, creamos dicha clase, implementando ConstraintValidator al que se le debe indicar que la validacion que hacemos es CheckCineValidation y que el campo que esperamos recibir, es un Long, ya que asi es el campo en nuestro Entity

CheckCineValidator.java

Como veis, el filtro es muy sencillo, me basta con recibir el repositorio de Cine, y utilizar un método previsto en él, que es existById que me devuelve true o false, por lo que lo retorno en isValid, y con eso queda hecha la comprobación.

Utilizando la anotación.

Para filtrar el campo, solo debemos ir a la clase que lo contiene, en mi caso EntradaDTO, y alli poner la anotacion

Tal y como está puesto, si no se indica el cine, aparecerá el mensaje de linea 28, y si se indica, pero el cine no existe en la tabla correspondiente, el mensaje que aparecerá será el que indicamos en la interfaz : «Se ha indicado un cine que no existe»

Solo recordaros la necesidad de indicar en el controlador, que es donde queremos filtrar, el @Valid

o

Probando la aplicacion

Utilizando Postman, y con el módulo ControllerExceptionValidation , que veremos mas adelante, podemos ver las respuesta cuando ent_cine no existe

o cuando no se indica ent_cine

Conclusión

Todo este desarrollo lo teneis explicado con mas detalle en youTube (a partir de 1/02/24) , y, aunque es conveniente que intentéis escribirlo TODO vosotros, si queréis renunciar a ello, lo teneis tambien en GitHub

Este desarrollo esta hecho para disponer de un fuente para explicar otros temas, tal y como se indica en Visión de conjunto con Spring

Deja un comentario

/*Si te ha gustado el artículo
no dudes en compartirlo*/

Facebook
Twitter
LinkedIn

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies

Ver mi IP

Ver ip de mi máquina
tipo valor
Ip: 3.17.28.48
Proxy: 3.17.28.48
Remote host: ec2-3-17-28-48.us-east-2.compute.amazonaws.com
Remote port: 48178
** 3.17.28.48, 172.70.178.166