File tree 2 files changed +32
-2
lines changed
main/java/org/springframework/data/jpa/repository/query
test/java/org/springframework/data/jpa/repository/query
2 files changed +32
-2
lines changed Original file line number Diff line number Diff line change 79
79
* @author Florian Lüdiger
80
80
* @author Grégoire Druant
81
81
* @author Mohammad Hewedy
82
+ * @author Andriy Redko
82
83
*/
83
84
public abstract class QueryUtils {
84
85
@@ -89,8 +90,8 @@ public abstract class QueryUtils {
89
90
// Z Separator
90
91
// Cc Control
91
92
// Cf Format
92
- // P Punctuation
93
- private static final String IDENTIFIER = "[._[\\ P{Z}&&\\ P{Cc}&&\\ P{Cf}&&\\ P{P }]]+" ;
93
+ // Punct Punctuation
94
+ private static final String IDENTIFIER = "[._$ [\\ P{Z}&&\\ P{Cc}&&\\ P{Cf}&&\\ P{Punct }]]+" ;
94
95
static final String COLON_NO_DOUBLE_COLON = "(?<![:\\ \\ ]):" ;
95
96
static final String IDENTIFIER_GROUP = String .format ("(%s)" , IDENTIFIER );
96
97
Original file line number Diff line number Diff line change 37
37
* @author Thomas Darimont
38
38
* @author Jens Schauder
39
39
* @author Nils Borrmann
40
+ * @author Andriy Redko
40
41
*/
41
42
public class StringQueryUnitTests {
42
43
@@ -540,6 +541,34 @@ public void isNotDefaultProjection() {
540
541
softly .assertAll ();
541
542
}
542
543
544
+ @ Test // DATAJPA-1652
545
+ public void usingPipesWithNamedParameter () {
546
+
547
+ String queryString = "SELECT u FROM User u WHERE u.lastname LIKE '%'||:name||'%'" ;
548
+ StringQuery query = new StringQuery (queryString );
549
+
550
+ softly .assertThat (query .getQueryString ()).isEqualTo (queryString );
551
+ softly .assertThat (query .hasParameterBindings ()).isTrue ();
552
+ softly .assertThat (query .getParameterBindings ()).hasSize (1 );
553
+ softly .assertThat (query .getParameterBindings ().get (0 ).getName ()).isEqualTo ("name" );
554
+
555
+ softly .assertAll ();
556
+ }
557
+
558
+ @ Test // DATAJPA-1652
559
+ public void usingGreaterThanWithNamedParameter () {
560
+
561
+ String queryString = "SELECT u FROM User u WHERE :age>u.age" ;
562
+ StringQuery query = new StringQuery (queryString );
563
+
564
+ softly .assertThat (query .getQueryString ()).isEqualTo (queryString );
565
+ softly .assertThat (query .hasParameterBindings ()).isTrue ();
566
+ softly .assertThat (query .getParameterBindings ()).hasSize (1 );
567
+ softly .assertThat (query .getParameterBindings ().get (0 ).getName ()).isEqualTo ("age" );
568
+
569
+ softly .assertAll ();
570
+ }
571
+
543
572
public void checkNumberOfNamedParameters (String query , int expectedSize , String label ) {
544
573
545
574
DeclaredQuery declaredQuery = DeclaredQuery .of (query );
You can’t perform that action at this time.
0 commit comments