File tree Expand file tree Collapse file tree 1 file changed +30
-0
lines changed
spring-data-relational/src/test/java/org/springframework/data/relational/core/sql/render Expand file tree Collapse file tree 1 file changed +30
-0
lines changed Original file line number Diff line number Diff line change @@ -232,6 +232,36 @@ void shouldRenderJoinWithInlineQuery() {
232
232
+ "ON one.department_id = department.id" );
233
233
}
234
234
235
+ @ Test // GH-1362
236
+ void shouldRenderNestedJoins () {
237
+
238
+ Table merchantCustomers = Table .create ("merchants_customers" );
239
+ Table customerDetails = Table .create ("customer_details" );
240
+
241
+ Select innerSelect = Select .builder ()
242
+ .select (customerDetails .column ("cd_user_id" ))
243
+ .from (customerDetails ).join (merchantCustomers )
244
+ .on (merchantCustomers .column ("mc_user_id" ).isEqualTo (customerDetails .column ("cd_user_id" )))
245
+ .build ();
246
+
247
+ InlineQuery innerTable = InlineQuery .create (innerSelect , "inner" );
248
+
249
+ Select select = Select .builder ().select (merchantCustomers .asterisk ()) //
250
+ .from (merchantCustomers ) //
251
+ .join (innerTable ).on (innerTable .column ("i_user_id" ).isEqualTo (merchantCustomers .column ("mc_user_id" ))) //
252
+ .build ();
253
+
254
+ String sql = SqlRenderer .toString (select );
255
+
256
+ assertThat (sql ).isEqualTo ("SELECT merchants_customers.* FROM merchants_customers " + //
257
+ "JOIN (" + //
258
+ "SELECT customer_details.cd_user_id " + //
259
+ "FROM customer_details " + //
260
+ "JOIN merchants_customers ON merchants_customers.mc_user_id = customer_details.cd_user_id" + //
261
+ ") inner " + //
262
+ "ON inner.i_user_id = merchants_customers.mc_user_id" );
263
+ }
264
+
235
265
@ Test // GH-1003
236
266
void shouldRenderJoinWithTwoInlineQueries () {
237
267
You can’t perform that action at this time.
0 commit comments