Obtenir les traces des prepared statements d'Hibernate est assez simple et tout le monde connaît cette configuration. Il suffit d'indiquer

hibernate.show_sql=true

dans le fichier de configuration XML Hibernate pour obtenir la requête qui sera utilisé avec le SGBD. La requête sera affichée sous la forme d'un preparedStatement avec des "?" à la place des valeurs.

Une question alors fréquemment posée est : comment obtenir aussi les valeurs passée avec la requête?!

L'information est quelque part connue en interne dans Hibernate : le tout est de la mettre en valeur en modifiant le paramétrage du logger. Par exemple avec log4j il suffit de mettre en level DEBUG les packages suivants et de les router vers un appender spécifique avec une additivité à false :

log4j.logger.org.hibernate.SQL=DEBUG,SQL_APPENDER
log4j.additivity.org.hibernate.SQL=false
org.hibernate.type=DEBUG,SQL_APPENDER
log4j.additivity.org.hibernate.type=false