3737import org .springframework .data .couchbase .domain .User ;
3838import org .springframework .data .couchbase .domain .UserRepository ;
3939import org .springframework .data .mapping .context .MappingContext ;
40+ import org .springframework .data .projection .SpelAwareProxyProjectionFactory ;
41+ import org .springframework .data .repository .core .support .DefaultRepositoryMetadata ;
4042import org .springframework .data .repository .query .DefaultParameters ;
4143import org .springframework .data .repository .query .ParameterAccessor ;
4244import org .springframework .data .repository .query .Parameters ;
4345import org .springframework .data .repository .query .ParametersParameterAccessor ;
46+ import org .springframework .data .repository .query .QueryMethod ;
4447import org .springframework .data .repository .query .parser .PartTree ;
4548
4649import com .couchbase .client .java .json .JsonArray ;
@@ -69,9 +72,10 @@ void createsQueryCorrectly() throws Exception {
6972 String input = "findByFirstname" ;
7073 PartTree tree = new PartTree (input , User .class );
7174 Method method = UserRepository .class .getMethod (input , String .class );
72-
73- N1qlQueryCreator creator = new N1qlQueryCreator (tree , getAccessor (getParameters (method ), "Oliver" ), null , converter ,
74- bucketName );
75+ QueryMethod queryMethod = new QueryMethod (method , new DefaultRepositoryMetadata (UserRepository .class ),
76+ new SpelAwareProxyProjectionFactory ());
77+ N1qlQueryCreator creator = new N1qlQueryCreator (tree , getAccessor (getParameters (method ), "Oliver" ), queryMethod ,
78+ converter , bucketName );
7579 Query query = creator .createQuery ();
7680
7781 assertEquals (query .export (), " WHERE " + where (i ("firstname" )).is ("Oliver" ).export ());
@@ -82,9 +86,10 @@ void createsQueryFieldAnnotationCorrectly() throws Exception {
8286 String input = "findByMiddlename" ;
8387 PartTree tree = new PartTree (input , Person .class );
8488 Method method = PersonRepository .class .getMethod (input , String .class );
85-
86- N1qlQueryCreator creator = new N1qlQueryCreator (tree , getAccessor (getParameters (method ), "Oliver" ), null , converter ,
87- bucketName );
89+ QueryMethod queryMethod = new QueryMethod (method , new DefaultRepositoryMetadata (UserRepository .class ),
90+ new SpelAwareProxyProjectionFactory ());
91+ N1qlQueryCreator creator = new N1qlQueryCreator (tree , getAccessor (getParameters (method ), "Oliver" ), queryMethod ,
92+ converter , bucketName );
8893 Query query = creator .createQuery ();
8994
9095 assertEquals (query .export (), " WHERE " + where (i ("nickname" )).is ("Oliver" ).export ());
@@ -95,10 +100,12 @@ void queryParametersArray() throws Exception {
95100 String input = "findByFirstnameIn" ;
96101 PartTree tree = new PartTree (input , User .class );
97102 Method method = UserRepository .class .getMethod (input , String [].class );
103+ QueryMethod queryMethod = new QueryMethod (method , new DefaultRepositoryMetadata (UserRepository .class ),
104+ new SpelAwareProxyProjectionFactory ());
98105 Query expected = (new Query ()).addCriteria (where (i ("firstname" )).in ("Oliver" , "Charles" ));
99106 N1qlQueryCreator creator = new N1qlQueryCreator (tree ,
100- getAccessor (getParameters (method ), new Object [] { new Object [] { "Oliver" , "Charles" } }), null , converter ,
101- bucketName );
107+ getAccessor (getParameters (method ), new Object [] { new Object [] { "Oliver" , "Charles" } }), queryMethod ,
108+ converter , bucketName );
102109 Query query = creator .createQuery ();
103110
104111 // Query expected = (new Query()).addCriteria(where("firstname").in("Oliver", "Charles"));
@@ -115,11 +122,12 @@ void queryParametersJsonArray() throws Exception {
115122 String input = "findByFirstnameIn" ;
116123 PartTree tree = new PartTree (input , User .class );
117124 Method method = UserRepository .class .getMethod (input , JsonArray .class );
118-
125+ QueryMethod queryMethod = new QueryMethod (method , new DefaultRepositoryMetadata (UserRepository .class ),
126+ new SpelAwareProxyProjectionFactory ());
119127 JsonArray jsonArray = JsonArray .create ();
120128 jsonArray .add ("Oliver" );
121129 jsonArray .add ("Charles" );
122- N1qlQueryCreator creator = new N1qlQueryCreator (tree , getAccessor (getParameters (method ), jsonArray ), null ,
130+ N1qlQueryCreator creator = new N1qlQueryCreator (tree , getAccessor (getParameters (method ), jsonArray ), queryMethod ,
123131 converter , bucketName );
124132 Query query = creator .createQuery ();
125133
@@ -137,11 +145,13 @@ void queryParametersList() throws Exception {
137145 String input = "findByFirstnameIn" ;
138146 PartTree tree = new PartTree (input , User .class );
139147 Method method = UserRepository .class .getMethod (input , String [].class );
148+ QueryMethod queryMethod = new QueryMethod (method , new DefaultRepositoryMetadata (UserRepository .class ),
149+ new SpelAwareProxyProjectionFactory ());
140150 List <String > list = new LinkedList <>();
141151 list .add ("Oliver" );
142152 list .add ("Charles" );
143153 N1qlQueryCreator creator = new N1qlQueryCreator (tree , getAccessor (getParameters (method ), new Object [] { list }),
144- null , converter , bucketName );
154+ queryMethod , converter , bucketName );
145155 Query query = creator .createQuery ();
146156
147157 Query expected = (new Query ()).addCriteria (where (i ("firstname" )).in ("Oliver" , "Charles" ));
@@ -159,8 +169,10 @@ void createsAndQueryCorrectly() throws Exception {
159169 String input = "findByFirstnameAndLastname" ;
160170 PartTree tree = new PartTree (input , User .class );
161171 Method method = UserRepository .class .getMethod (input , String .class , String .class );
162- N1qlQueryCreator creator = new N1qlQueryCreator (tree , getAccessor (getParameters (method ), "John" , "Doe" ), null ,
163- converter , bucketName );
172+ QueryMethod queryMethod = new QueryMethod (method , new DefaultRepositoryMetadata (UserRepository .class ),
173+ new SpelAwareProxyProjectionFactory ());
174+ N1qlQueryCreator creator = new N1qlQueryCreator (tree , getAccessor (getParameters (method ), "John" , "Doe" ),
175+ queryMethod , converter , bucketName );
164176 Query query = creator .createQuery ();
165177
166178 assertEquals (" WHERE " + where (i ("firstname" )).is ("John" ).and (i ("lastname" )).is ("Doe" ).export (), query .export ());
@@ -171,9 +183,10 @@ void createsQueryFindByIdIsNotNullAndFirstname() throws Exception {
171183 String input = "findByIdIsNotNullAndFirstnameEquals" ;
172184 PartTree tree = new PartTree (input , User .class );
173185 Method method = UserRepository .class .getMethod (input , String .class );
174-
175- N1qlQueryCreator creator = new N1qlQueryCreator (tree , getAccessor (getParameters (method ), "Oliver" ), null , converter ,
176- bucketName );
186+ QueryMethod queryMethod = new QueryMethod (method , new DefaultRepositoryMetadata (UserRepository .class ),
187+ new SpelAwareProxyProjectionFactory ());
188+ N1qlQueryCreator creator = new N1qlQueryCreator (tree , getAccessor (getParameters (method ), "Oliver" ), queryMethod ,
189+ converter , bucketName );
177190 Query query = creator .createQuery ();
178191
179192 assertEquals (query .export (),
@@ -185,9 +198,10 @@ void createsQueryFindByVersionEqualsAndAndFirstname() throws Exception {
185198 String input = "findByVersionEqualsAndFirstnameEquals" ;
186199 PartTree tree = new PartTree (input , User .class );
187200 Method method = UserRepository .class .getMethod (input , Long .class , String .class );
188-
201+ QueryMethod queryMethod = new QueryMethod (method , new DefaultRepositoryMetadata (UserRepository .class ),
202+ new SpelAwareProxyProjectionFactory ());
189203 N1qlQueryCreator creator = new N1qlQueryCreator (tree ,
190- getAccessor (getParameters (method ), 1611287177404088320L , "Oliver" ), null , converter , bucketName );
204+ getAccessor (getParameters (method ), 1611287177404088320L , "Oliver" ), queryMethod , converter , bucketName );
191205 Query query = creator .createQuery ();
192206
193207 assertEquals (query .export (), " WHERE " + where (x ("META(`" + bucketName + "`).`cas`" )).is (1611287177404088320L )
0 commit comments