diff --git a/pom.xml b/pom.xml
index c2fdc724c7..a03346a2fd 100755
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-jpa-parent
- 3.2.12-SNAPSHOT
+ 3.2.x-GH-3649-SNAPSHOT
pom
Spring Data JPA Parent
diff --git a/spring-data-envers/pom.xml b/spring-data-envers/pom.xml
index 811159a7d7..93acc9969f 100755
--- a/spring-data-envers/pom.xml
+++ b/spring-data-envers/pom.xml
@@ -5,12 +5,12 @@
org.springframework.data
spring-data-envers
- 3.2.12-SNAPSHOT
+ 3.2.x-GH-3649-SNAPSHOT
org.springframework.data
spring-data-jpa-parent
- 3.2.12-SNAPSHOT
+ 3.2.x-GH-3649-SNAPSHOT
../pom.xml
diff --git a/spring-data-jpa-distribution/pom.xml b/spring-data-jpa-distribution/pom.xml
index 0ffbe0ec49..f4275c71bb 100644
--- a/spring-data-jpa-distribution/pom.xml
+++ b/spring-data-jpa-distribution/pom.xml
@@ -14,7 +14,7 @@
org.springframework.data
spring-data-jpa-parent
- 3.2.12-SNAPSHOT
+ 3.2.x-GH-3649-SNAPSHOT
../pom.xml
diff --git a/spring-data-jpa/pom.xml b/spring-data-jpa/pom.xml
index 93c168fec7..b21a1d3085 100644
--- a/spring-data-jpa/pom.xml
+++ b/spring-data-jpa/pom.xml
@@ -6,7 +6,7 @@
org.springframework.data
spring-data-jpa
- 3.2.12-SNAPSHOT
+ 3.2.x-GH-3649-SNAPSHOT
Spring Data JPA
Spring Data module for JPA repositories.
@@ -15,7 +15,7 @@
org.springframework.data
spring-data-jpa-parent
- 3.2.12-SNAPSHOT
+ 3.2.x-GH-3649-SNAPSHOT
../pom.xml
diff --git a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/HqlQueryTransformer.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/HqlQueryTransformer.java
index dc0445263d..4c7a7e359e 100644
--- a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/HqlQueryTransformer.java
+++ b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/HqlQueryTransformer.java
@@ -101,8 +101,12 @@ private static boolean isSubquery(ParserRuleContext ctx) {
return false;
} else if (ctx instanceof HqlParser.InsertStatementContext) {
return false;
+ } else if (ctx instanceof HqlParser.DeleteStatementContext) {
+ return false;
+ } else if (ctx instanceof HqlParser.UpdateStatementContext) {
+ return false;
} else {
- return isSubquery(ctx.getParent());
+ return ctx.getParent() != null ? isSubquery(ctx.getParent()) : false;
}
}
diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/HqlQueryTransformerTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/HqlQueryTransformerTests.java
index 648c03e055..5dab8c1cfe 100644
--- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/HqlQueryTransformerTests.java
+++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/HqlQueryTransformerTests.java
@@ -995,16 +995,23 @@ void fromWithoutAPrimaryAliasShouldWork() {
.isEqualTo("FROM Story WHERE enabled = true order by created desc");
}
- @Test // GH-2977
- void isSubqueryThrowsException() {
-
- String query = """
- insert into MyEntity (id, col)
- select max(id), col
- from MyEntityStaging
- group by col
- """;
-
+ @ParameterizedTest
+ @ValueSource(strings = { """
+ insert into MyEntity (id, col)
+ select max(id), col
+ from MyEntityStaging
+ group by col
+ """, """
+ update MyEntity AS mes
+ set mes.col = 'test'
+ where mes.id = 1
+ """, """
+ delete MyEntity AS mes
+ where mes.col = 'test'
+ """
+
+ }) // GH-2977, GH-3649
+ void isSubqueryThrowsException(String query) {
assertThat(createQueryFor(query, Sort.unsorted())).isEqualToIgnoringWhitespace(query);
}