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() {
232232 + "ON one.department_id = department.id" );
233233 }
234234
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+
235265 @ Test // GH-1003
236266 void shouldRenderJoinWithTwoInlineQueries () {
237267
You can’t perform that action at this time.
0 commit comments