Skip to content

Commit 59a114a

Browse files
koenpuntmp911de
authored andcommitted
Add failing test with multiple joins and InlineQuery.
Adds a test demonstrating that the join condition of inline queries messes up those of outer joins. Closes: #1362 Original pull request: #1368
1 parent 9a8caf4 commit 59a114a

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

spring-data-relational/src/test/java/org/springframework/data/relational/core/sql/render/SelectRendererUnitTests.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)