|
18 | 18 | import static org.assertj.core.api.Assertions.*;
|
19 | 19 | import static org.springframework.data.jpa.repository.query.JpaQueryParsingToken.*;
|
20 | 20 |
|
| 21 | +import java.util.stream.Stream; |
| 22 | + |
21 | 23 | import org.antlr.v4.runtime.CharStreams;
|
22 | 24 | import org.antlr.v4.runtime.CommonTokenStream;
|
23 | 25 | import org.junit.jupiter.api.Disabled;
|
24 | 26 | import org.junit.jupiter.api.Test;
|
25 | 27 | import org.junit.jupiter.params.ParameterizedTest;
|
| 28 | +import org.junit.jupiter.params.provider.Arguments; |
| 29 | +import org.junit.jupiter.params.provider.MethodSource; |
26 | 30 | import org.junit.jupiter.params.provider.ValueSource;
|
27 | 31 |
|
28 | 32 | /**
|
@@ -55,6 +59,10 @@ private static String parseWithoutChanges(String query) {
|
55 | 59 | return render(new HqlQueryRenderer().visit(parsedQuery));
|
56 | 60 | }
|
57 | 61 |
|
| 62 | + public static Stream<Arguments> reservedWords() { |
| 63 | + return Stream.of("abs", "exp", "any", "case", "else", "index", "time").map(Arguments::of); |
| 64 | + } |
| 65 | + |
58 | 66 | private void assertQuery(String query) {
|
59 | 67 |
|
60 | 68 | String slimmedDownQuery = reduceWhitespace(query);
|
@@ -1659,4 +1667,12 @@ void signedLiteralShouldWork(String query) {
|
1659 | 1667 | void signedExpressionsShouldWork(String query) {
|
1660 | 1668 | assertQuery(query);
|
1661 | 1669 | }
|
| 1670 | + |
| 1671 | + @ParameterizedTest // GH-3451 |
| 1672 | + @MethodSource({"reservedWords"}) |
| 1673 | + void entityNameWithPackageContainingReservedWord(String reservedWord) { |
| 1674 | + |
| 1675 | + String source = "select new com.company.%s.thing.stuff.ClassName(e.id) from Experience e".formatted(reservedWord); |
| 1676 | + assertQuery(source); |
| 1677 | + } |
1662 | 1678 | }
|
0 commit comments