Skip to main content

Catch persistence java.sql.sqlintegrityconstraintviolationexception


Depending on your persistence provider, you may encounter an SQLIntegrityConstraintViolationException when you try to persist an object that violates a database constraint. To handle this exception, you need to find out the class that wraps it by calling the e.getClass() and e.getCause() methods on the exception object.

For example, if you are using Hibernate as your persistence provider, you can catch a javax.ejb.EJBException and then get the org.hibernate.exception.ConstraintViolationException from its cause.


try{
  //persistence transactions
}catch (Exception e) {
      if (e instanceof javax.ejb.EJBException) {
      logger.debug("Exception instance of javax.ejb.EJBException");
      Throwable cause = e.getCause(); //persistence exception 
      if (cause != null) { 
        cause = cause.getCause(); 
        if (cause instanceof org.hibernate.exception.ConstraintViolationException)  {
         logger.info("update_duplicate_response | " + update_response);
     }
                    }
     } else {
        e.printStackTrace();
     }
}

Happy coding.

Comments

Popular posts from this blog

Fix HTTP error code 513 on Wildfly

Description :  Many users have reported a network issue where they see a large number of connections in TIME_WAIT and IDLE states. This indicates that the connections are not being closed properly by the server or the client.  When I analyzed the network traffic, I found that the server was sending HTTP Error 513 to the client, which means that the server is overloaded and cannot handle more requests. The client was also logging a socket close event, which means that the client was terminating the connection. This can be simulated using Jmeter. The HTTP error code 153 resulted from the max concurrent connection limit reached, and the allowed queue was also full. This issue can cause performance degradation and resource wastage on both the server and the client. To resolve this issue, we recommend the following steps: Resolution :  1. Investigate the process of holding onto the connection longer than necessary. 2. Increase the server capacity or scale up the server to handle mo

Wildfly EJB Remote Client Exceptions.......

Below are exceptions and the solutions I applied while developing a remote client enterprise application. To start with, enable debug for your application server to see the detail and good luck troubleshooting. Exceptions : Starting with  java.lang.ClassNotFoundException: org.hibernate.collection.internal.Persistent......... Solution : I fixed the exception be adding hibernate Entity Manager Dependencies. Exception: Error javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial Solution : Add JBOSS-CLIENT Dependencies to your project Exception : IllegalStateException: EJBCLIENT000025: No EJB receiver available for handling Solution : Confirm that your EJB module have been deployed. Exception : org.jboss.naming.remote.client.initialcontextfactory wildfly     javax.naming.NamingException: WFLYNAM0027: Failed instantiate Initia