ACTUALIZACIÓN 2: org.hibernate.jdbc.util.BasicFormatterImpl nos cambiaron en la versión 4.0. Ahora se encuentra en: org.hibernate.engine.jdbc.internal.BasicFormatterImpl.
ACTUALIZACIÓN: La tecnología avanza. Como señaló Alex, org.hibernate.pretty.Formatter ya no existe a partir de la versión 3.3.2.GA. La sustitución es org.hibernate.jdbc.util.BasicFormatterImpl:
String formattedSQL = new BasicFormatterImpl().format(sql);
En este escrito, esta respuesta tiene la mayoría de upvotes, y debe tener la respuesta correcta actual en ella, por lo que se han actualizado en consecuencia. Apoyos a Alex por mencionarlo.
...
respuesta original: Si está usando Hibernate, que tienen un built-in: org.hibernate.pretty.Formatter
String formattedSQL = new Formatter(sql).format();
o DDLFormatter, que a) Insertar nueva línea después de cada coma; b) Sangra tres espacios después de cada nueva línea insertada; –
Esto parece ser exactamente lo que estoy buscando. Hibernate ya es un componente central de mi solución, por lo que no presenta una nueva dependencia. –
FYI, BasicFormatterImpl no maneja los comentarios '-' y DDLFormatter es aún más primitivo, ver http://www.dil.univ-mrs.fr/~massat/docs/hibernate-3.1/api/org/hibernate/pretty/ DDLFormatter.html # format() – Karl