diff --git a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/internal/BasicFormatterImpl.java b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/internal/BasicFormatterImpl.java index 80ccf9fde098..1e090fb7daae 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/internal/BasicFormatterImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/internal/BasicFormatterImpl.java @@ -69,8 +69,16 @@ public String perform() { while ( tokens.hasMoreTokens() ) { token = tokens.nextToken(); - lcToken = token.toLowerCase(Locale.ROOT); + if ( "-".equals(token) && result.toString().endsWith("-") ) { + do { + result.append( token ); + token = tokens.nextToken(); + } + while ( !"\n".equals( token ) && tokens.hasMoreTokens() ); + } + + lcToken = token.toLowerCase(Locale.ROOT); switch (lcToken) { case "'": diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/sql/hand/query/NativeSQLQueriesTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/sql/hand/query/NativeSQLQueriesTest.java index 8af5856dc0c0..df777a303ca9 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/sql/hand/query/NativeSQLQueriesTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/sql/hand/query/NativeSQLQueriesTest.java @@ -836,6 +836,12 @@ public void testAddJoinForManyToMany(SessionFactoryScope scope) { ); } + @Test @JiraKey( "HHH-15102" ) + @SkipForDialect(dialectClass = MySQLDialect.class, matchSubTypes = true) + public void testCommentInSQLQuery(SessionFactoryScope scope) { + scope.inTransaction( s -> s.createNativeQuery( "select sum(1) --count(*), effectively\nfrom ORGANIZATION" ).getSingleResult() ); + } + @Test public void testTextTypeInSQLQuery(SessionFactoryScope scope) { String description = buildLongString( 15000, 'a' );