Try DataAccessException.getCause(). It should return a cause exception. You can walk the cause chain and maybe you can find the SQLException somewhere in there. The signature is:
public Throwable getCause()
You can check the type of exception with instanceof.