ConstraintViolationException, ¿debo esperar que se lance y luego manejarla? ¿o debo evitar que se lance?

Al escribir el código de la base de datos, generalmente evito que se produzca una excepción ConstraintViolationException al verificar los registros antes de actualizar o insertar.

No espero que tenga lugar una excepción ContraintViolationException y luego la manejo. Esto se debe a que un administrador de base de datos me dijo una vez que esta es una mala práctica.

Pero veo que muchos desarrolladores manejan la excepción ContraintViolationException y Foreign Key, en lugar de verificar manualmente las violaciones utilizando el código sql.

¿La pregunta es? ¿Cual es mejor? ¿Debo manejar tales excepciones cuando surjan, o debería consultar los objetos antes de las operaciones de inserción / actualización y evitar que se produzcan estos errores?

Respuesta 1

Lo mejor, es decir, la forma más simple es manejar tales excepciones cuando surjan. Porque ese es el propósito del intento de captura en primer lugar.

Si consulta el objeto antes de insertar / actualizar, solo está agregando código que puede ralentizar su aplicación porque los viajes a la base de datos requieren muchos recursos. Imagínese si hay 1000 usuarios y la aplicación lo hace.

Respuesta: 2

Tengo mi aplicación implementada en un clúster con dos servidores. Cuando configuro cualquier atributo usando: this.getServletContext (). SetAttribute ("test", testObj); ¿El atributo testObj con prueba clave será ...

Tengo que: - Leer un archivo de texto grande línea por línea. Anote la posición del puntero del archivo después de cada línea leída. Detenga la lectura del archivo si el tiempo de ejecución es superior a 30 segundos. Reanudar desde el último archivo anotado ...

Estoy tratando de descubrir la complejidad del código dado a continuación en función del tamaño del problema n. suma = 0; if (INCLUSO (n)) para (i = 0; i <n; i ++) if (i% 2 == 0) O (logn) ...

Necesito recuperar algunos datos en la base de datos en tiempo real de Firebase en función de los valores de un niño. Por ejemplo, aquí necesito mostrar solo el hijo (notificación) donde se acepta == verdadero. Transmito mis valores en ...