@@ -64,8 +64,8 @@ void detectsPositionalLikeBindings() {
64
64
true );
65
65
66
66
assertThat (query .hasParameterBindings ()).isTrue ();
67
- assertThat (query .getQueryString ())
68
- . isEqualTo ( "select u from User u where u.firstname like CONCAT('%',?1,'%') or u.lastname like CONCAT('%',?2 )" );
67
+ assertThat (query .getQueryString ()). isEqualTo (
68
+ "select u from User u where u.firstname like CONCAT('%',COALESCE( ?1,''),' %') or u.lastname like CONCAT('%',COALESCE(?2,'') )" );
69
69
70
70
List <ParameterBinding > bindings = query .getParameterBindings ();
71
71
assertThat (bindings ).hasSize (2 );
@@ -87,7 +87,8 @@ void detectsNamedLikeBindings() {
87
87
StringQuery query = new StringQuery ("select u from User u where u.firstname like %:firstname" , true );
88
88
89
89
assertThat (query .hasParameterBindings ()).isTrue ();
90
- assertThat (query .getQueryString ()).isEqualTo ("select u from User u where u.firstname like CONCAT('%',:firstname)" );
90
+ assertThat (query .getQueryString ())
91
+ .isEqualTo ("select u from User u where u.firstname like CONCAT('%',COALESCE(:firstname,''))" );
91
92
92
93
List <ParameterBinding > bindings = query .getParameterBindings ();
93
94
assertThat (bindings ).hasSize (1 );
@@ -200,8 +201,8 @@ void removesLikeBindingsFromQueryIfQueryContainsSimpleBinding() {
200
201
assertNamedBinding (ParameterBinding .class , "word" , bindings .get (1 ));
201
202
202
203
assertThat (query .getQueryString ())
203
- .isEqualTo ("SELECT a FROM Article a WHERE a.overview LIKE CONCAT('%',:escapedWord,'%') ESCAPE '~'"
204
- + " OR a.content LIKE CONCAT('%',:escapedWord,'%') ESCAPE '~' OR a.title = :word ORDER BY a.articleId DESC" );
204
+ .isEqualTo ("SELECT a FROM Article a WHERE a.overview LIKE CONCAT('%',COALESCE( :escapedWord,'') ,'%') ESCAPE '~'"
205
+ + " OR a.content LIKE CONCAT('%',COALESCE( :escapedWord,'') ,'%') ESCAPE '~' OR a.title = :word ORDER BY a.articleId DESC" );
205
206
}
206
207
207
208
@ Test // DATAJPA-483
0 commit comments