Llame a getNextException para ver la causa: cómo hacer que Hibernate / JPA muestre el mensaje del servidor DB para una excepción

Estoy usando Postgresql, Hibernate y JPA. Siempre que hay una excepción en la base de datos, obtengo algo como esto que no es muy útil ya que no muestra lo que realmente salió mal en el servidor DB.

Caused by: java.sql.BatchUpdateException: Batch entry 0 update foo set ALERT_FLAG='3' was aborted.  Call getNextException to see the cause.
    at org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2621)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1837)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:407)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:2754)
    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:1723)
    at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
    at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
    ... 82 more

Quiero que el mensaje de excepción de la base de datos aparezca en el registro de la aplicación.

Me encontré conEste artículo que utiliza un aspecto para rellenar la cadena de excepciones que, de lo contrario, no se rellena correctamente en el caso de SQLExceptions.

¿Hay alguna manera de solucionar este problema sin usar Aspects o cualquier código personalizado? La solución ideal implicaría solo cambios en el archivo de configuración.

Respuestas a la pregunta(7)

Su respuesta a la pregunta