diff --git a/spring-data-jpa/src/main/antlr4/org/springframework/data/jpa/repository/query/Jpql.g4 b/spring-data-jpa/src/main/antlr4/org/springframework/data/jpa/repository/query/Jpql.g4 index 9f09273e9..13d6a24a7 100644 --- a/spring-data-jpa/src/main/antlr4/org/springframework/data/jpa/repository/query/Jpql.g4 +++ b/spring-data-jpa/src/main/antlr4/org/springframework/data/jpa/repository/query/Jpql.g4 @@ -604,6 +604,7 @@ identification_variable | OUTER | FLOOR | SIGN + | TYPE | VALUE) ; diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/HqlQueryRendererTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/HqlQueryRendererTests.java index fcd151679..48592afbf 100644 --- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/HqlQueryRendererTests.java +++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/HqlQueryRendererTests.java @@ -1549,4 +1549,11 @@ class HqlQueryRendererTests { void escapeClauseShouldWork() { assertQuery("select t.name from SomeDbo t where t.name LIKE :name escape '\\\\'"); } + + @Test // GH-3062, GH-3056 + void typeShouldBeAValidParameter() { + + assertQuery("select e from Employee e where e.type = :_type"); + assertQuery("select te from TestEntity te where te.type = :type"); + } } diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/JpqlQueryRendererTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/JpqlQueryRendererTests.java index 989e9319f..f736c635b 100644 --- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/JpqlQueryRendererTests.java +++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/query/JpqlQueryRendererTests.java @@ -941,4 +941,11 @@ class JpqlQueryRendererTests { void queryWithValueShouldWork() { assertQuery("select t.value from TestEntity t"); } + + @Test // GH-3062, GH-3056 + void typeShouldBeAValidParameter() { + + assertQuery("select e from Employee e where e.type = :_type"); + assertQuery("select te from TestEntity te where te.type = :type"); + } }