diff --git a/spring-data-relational/pom.xml b/spring-data-relational/pom.xml
index 7d49bf2ef..3ba39b861 100644
--- a/spring-data-relational/pom.xml
+++ b/spring-data-relational/pom.xml
@@ -20,6 +20,7 @@
spring.data.relational
${basedir}/..
+ 4.9
@@ -100,7 +101,7 @@
com.github.jsqlparser
jsqlparser
- 4.6
+ ${jsqlparser}
test
diff --git a/spring-data-relational/src/test/java/org/springframework/data/relational/core/sqlgeneration/AliasedPattern.java b/spring-data-relational/src/test/java/org/springframework/data/relational/core/sqlgeneration/AliasedPattern.java
index 66b42bd02..32f5bd5d7 100644
--- a/spring-data-relational/src/test/java/org/springframework/data/relational/core/sqlgeneration/AliasedPattern.java
+++ b/spring-data-relational/src/test/java/org/springframework/data/relational/core/sqlgeneration/AliasedPattern.java
@@ -16,7 +16,6 @@
package org.springframework.data.relational.core.sqlgeneration;
-import net.sf.jsqlparser.statement.select.SelectExpressionItem;
import net.sf.jsqlparser.statement.select.SelectItem;
/**
@@ -24,19 +23,14 @@ import net.sf.jsqlparser.statement.select.SelectItem;
*
* @param pattern for the expression to match
* @param alias to match
- *
* @author Jens Schauder
*/
-record AliasedPattern (SelectItemPattern pattern, String alias) implements SelectItemPattern {
+record AliasedPattern(SelectItemPattern pattern, String alias) implements SelectItemPattern {
@Override
public boolean matches(SelectItem selectItem) {
-
- if (selectItem instanceof SelectExpressionItem sei) {
- return pattern.matches(sei) && sei.getAlias() != null && sei.getAlias().getName().equals(alias);
- }
-
- return false;
+ return pattern.matches(selectItem) && selectItem.getAlias() != null
+ && selectItem.getAlias().getName().equals(alias);
}
@Override
diff --git a/spring-data-relational/src/test/java/org/springframework/data/relational/core/sqlgeneration/AnalyticFunctionPattern.java b/spring-data-relational/src/test/java/org/springframework/data/relational/core/sqlgeneration/AnalyticFunctionPattern.java
index a95526521..a55d3e97a 100644
--- a/spring-data-relational/src/test/java/org/springframework/data/relational/core/sqlgeneration/AnalyticFunctionPattern.java
+++ b/spring-data-relational/src/test/java/org/springframework/data/relational/core/sqlgeneration/AnalyticFunctionPattern.java
@@ -18,7 +18,6 @@ package org.springframework.data.relational.core.sqlgeneration;
import net.sf.jsqlparser.expression.AnalyticExpression;
import net.sf.jsqlparser.expression.Expression;
-import net.sf.jsqlparser.statement.select.SelectExpressionItem;
import net.sf.jsqlparser.statement.select.SelectItem;
import java.util.List;
@@ -44,19 +43,17 @@ public class AnalyticFunctionPattern extends TypedExpressionPattern {
return new AnalyticFunctionPattern("count", partitionBy);
}
- static FunctionPattern func(String name, ExpressionPattern ... params) {
+ static FunctionPattern func(String name, ExpressionPattern... params) {
return new FunctionPattern(name, params);
}
- static FunctionPattern func(String name, String ... params) {
+
+ static FunctionPattern func(String name, String... params) {
return new FunctionPattern(name, Arrays.stream(params).map(p -> col(p)).collect(Collectors.toList()));
}
@@ -104,7 +103,7 @@ class SqlAssert extends AbstractAssert {
SqlAssert hasExactlyColumns(SelectItemPattern... columns) {
- List actualSelectItems = actual.getSelectItems();
+ List> actualSelectItems = actual.getSelectItems();
List unmatchedPatterns = new ArrayList<>(Arrays.asList(columns));
List unmatchedSelectItems = new ArrayList<>();
@@ -169,15 +168,18 @@ class SqlAssert extends AbstractAssert {
Expression where = actual.getWhere();
return new StringAssert(where == null ? "" : where.toString());
}
+
public JoinAssert hasJoin() {
List joins = actual.getJoins();
if (joins == null || joins.size() < 1) {
- throw failureWithActualExpected(actual, "select with a join", "Expected %s to contain a join but it doesn't.", actual);
+ throw failureWithActualExpected(actual, "select with a join", "Expected %s to contain a join but it doesn't.",
+ actual);
}
return new JoinAssert(joins.get(0));
}
+
private String prepare(SelectItemPattern[] columns) {
return Arrays.toString(columns);
}
@@ -185,7 +187,7 @@ class SqlAssert extends AbstractAssert {
SqlAssert hasInlineViewSelectingFrom(String tableName) {
Optional matchingSelect = getSubSelects(actual)
- .filter(ps -> (ps.getFromItem()instanceof Table t) && t.getName().equals(tableName)).findFirst();
+ .filter(ps -> (ps.getFromItem() instanceof Table t) && t.getName().equals(tableName)).findFirst();
if (matchingSelect.isEmpty()) {
throw failureWithActualExpected(actual, "Subselect from " + tableName,
@@ -195,13 +197,11 @@ class SqlAssert extends AbstractAssert {
return new SqlAssert(matchingSelect.get());
}
-
public SqlAssert hasInlineView() {
Optional matchingSelect = getSubSelects(actual).findFirst();
if (matchingSelect.isEmpty()) {
- throw failureWithActualExpected(actual, "Subselect",
- "%s is expected to contain a subselect", actual);
+ throw failureWithActualExpected(actual, "Subselect", "%s is expected to contain a subselect", actual);
}
return new SqlAssert(matchingSelect.get());
@@ -227,15 +227,8 @@ class SqlAssert extends AbstractAssert {
}
private static Stream subSelects(FromItem fromItem) {
- Stream fromStream;
- if (fromItem instanceof SubSelect ss) {
- fromStream = Stream.of((PlainSelect) ss.getSelectBody());
- } else if (fromItem instanceof SpecialSubSelect ss) {
- fromStream = Stream.of((PlainSelect) ss.getSubSelect().getSelectBody());
- } else {
- fromStream = Stream.empty();
- }
- return fromStream;
+
+ return fromItem instanceof Select ss ? Stream.of(ss.getPlainSelect()) : Stream.empty();
}
public StringAssert extractOrderBy() {
diff --git a/spring-data-relational/src/test/java/org/springframework/data/relational/core/sqlgeneration/TypedExpressionPattern.java b/spring-data-relational/src/test/java/org/springframework/data/relational/core/sqlgeneration/TypedExpressionPattern.java
index 094ab756e..8aec7059a 100644
--- a/spring-data-relational/src/test/java/org/springframework/data/relational/core/sqlgeneration/TypedExpressionPattern.java
+++ b/spring-data-relational/src/test/java/org/springframework/data/relational/core/sqlgeneration/TypedExpressionPattern.java
@@ -17,7 +17,6 @@
package org.springframework.data.relational.core.sqlgeneration;
import net.sf.jsqlparser.expression.Expression;
-import net.sf.jsqlparser.statement.select.SelectExpressionItem;
import net.sf.jsqlparser.statement.select.SelectItem;
/**
@@ -33,15 +32,12 @@ abstract class TypedExpressionPattern implements SelectItemPattern, Expressio
this.type = type;
}
+
@Override
public boolean matches(SelectItem selectItem) {
- if (selectItem instanceof SelectExpressionItem sei) {
-
- Expression expression = sei.getExpression();
- return matches(expression);
- }
- return false;
+ Expression expression = selectItem.getExpression();
+ return matches(expression);
}
@Override