UPDATE 2: org.hibernate.jdbc.util.BasicFormatterImpl został przeniesiony w wydaniu 4.0. Znajduje się teraz pod adresem: org.hibernate.engine.jdbc.internal.BasicFormatterImpl.
AKTUALIZACJA: Marsze technologiczne na. Jak zauważył Alex, org.hibernate.pretty.Formatter już nie istnieje od wersji 3.3.2.GA. Wymiana jest org.hibernate.jdbc.util.BasicFormatterImpl:
String formattedSQL = new BasicFormatterImpl().format(sql);
W tym piśmie, odpowiedź ta ma najwięcej upvotes, a powinien mieć aktualny poprawną odpowiedź w nim, więc zaktualizowaliśmy go odpowiednio. Rekwizyty dla Alexa za to.
...
ORIGINAL ODPOWIEDŹ: Jeśli używasz hibernacji, że mają jeden wbudowany: org.hibernate.pretty.Formatter
String formattedSQL = new Formatter(sql).format();
lub DDLFormatter, który będzie a) Wstawić znak nowej linii po każdym przecinku; b) Wciśnij trzy spacje po każdym wstawionym znaku nowej linii; –
Wygląda na to, że dokładnie to, czego szukam. Hibernate jest już podstawowym komponentem mojego rozwiązania, więc nie wprowadza nowej zależności. –
FYI, BasicFormatterImpl nie obsługuje komentarzy "-", a DDLFormatter jest jeszcze bardziej prymitywny, patrz http://www.dil.univ-mrs.fr/~massat/docs/hibernate-3.1/api/org/hibernate/pretty/ DDLFormatter.html # format() – Karl