@@ -63,16 +63,18 @@ public class JSqlParserQueryEnhancer implements QueryEnhancer {
63
63
* @param query the query we want to enhance. Must not be {@literal null}.
64
64
*/
65
65
public JSqlParserQueryEnhancer (DeclaredQuery query ) {
66
+
66
67
this .query = query ;
67
68
this .parsedType = detectParsedType ();
68
69
}
69
70
70
71
/**
71
72
* Detects what type of query is provided.
72
- *
73
+ *
73
74
* @return the parsed type
74
75
*/
75
76
private ParsedType detectParsedType () {
77
+
76
78
try {
77
79
Statement statement = CCJSqlParserUtil .parse (this .query .getQueryString ());
78
80
@@ -85,14 +87,14 @@ private ParsedType detectParsedType() {
85
87
} else {
86
88
return ParsedType .SELECT ;
87
89
}
88
-
89
90
} catch (JSQLParserException e ) {
90
91
throw new IllegalArgumentException ("The query you provided is not a valid SQL Query!" , e );
91
92
}
92
93
}
93
94
94
95
@ Override
95
96
public String applySorting (Sort sort , @ Nullable String alias ) {
97
+
96
98
String queryString = query .getQueryString ();
97
99
Assert .hasText (queryString , "Query must not be null or empty!" );
98
100
@@ -168,9 +170,11 @@ Set<String> getSelectionAliases() {
168
170
* @return a {@literal Set} of aliases used in the query. Guaranteed to be not {@literal null}.
169
171
*/
170
172
private Set <String > getJoinAliases (String query ) {
173
+
171
174
if (this .parsedType != ParsedType .SELECT ) {
172
175
return new HashSet <>();
173
176
}
177
+
174
178
return getJoinAliases ((PlainSelect ) parseSelectStatement (query ).getSelectBody ());
175
179
}
176
180
@@ -377,16 +381,17 @@ private boolean onlyASingleColumnProjection(List<SelectItem> projection) {
377
381
public DeclaredQuery getQuery () {
378
382
return this .query ;
379
383
}
380
- }
381
384
382
- /**
383
- * An enum to represent the top level parsed statement of the provided query.
384
- * <ul>
385
- * <li>{@code ParsedType.DELETE}: means the top level statement is {@link Delete}</li>
386
- * <li>{@code ParsedType.UPDATE}: means the top level statement is {@link Update}</li>
387
- * <li>{@code ParsedType.SELECT}: means the top level statement is {@link Select}</li>
388
- * </ul>
389
- */
390
- enum ParsedType {
391
- DELETE , UPDATE , SELECT ;
385
+ /**
386
+ * An enum to represent the top level parsed statement of the provided query.
387
+ * <ul>
388
+ * <li>{@code ParsedType.DELETE}: means the top level statement is {@link Delete}</li>
389
+ * <li>{@code ParsedType.UPDATE}: means the top level statement is {@link Update}</li>
390
+ * <li>{@code ParsedType.SELECT}: means the top level statement is {@link Select}</li>
391
+ * </ul>
392
+ */
393
+ enum ParsedType {
394
+ DELETE , UPDATE , SELECT ;
395
+ }
396
+
392
397
}
0 commit comments