Skip to content

Commit c9c7f9e

Browse files
committed
Standardize sub-query rendering
1 parent 44bc7d9 commit c9c7f9e

File tree

6 files changed

+17
-29
lines changed

6 files changed

+17
-29
lines changed

src/main/java/org/mybatis/dynamic/sql/select/SelectModel.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,17 @@ public Optional<PagingModel> pagingModel() {
5757
@NotNull
5858
public SelectStatementProvider render(RenderingStrategy renderingStrategy) {
5959
RenderingContext renderingContext = RenderingContext.withRenderingStrategy(renderingStrategy).build();
60+
return render(renderingContext);
61+
}
62+
63+
/**
64+
* This version is for rendering sub-queries, union queries, etc.
65+
*
66+
* @param renderingContext the rendering context
67+
* @return a rendered select statement and parameters
68+
*/
69+
@NotNull
70+
public SelectStatementProvider render(RenderingContext renderingContext) {
6071
return SelectRenderer.withSelectModel(this)
6172
.withRenderingContext(renderingContext)
6273
.build()

src/main/java/org/mybatis/dynamic/sql/select/render/MultiSelectRenderer.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,7 @@ private SelectStatementProvider toSelectStatementProvider(FragmentCollector frag
6262
}
6363

6464
private FragmentAndParameters renderSelect(SelectModel selectModel) {
65-
SelectStatementProvider selectStatement = SelectRenderer.withSelectModel(selectModel)
66-
.withRenderingContext(renderingContext)
67-
.build()
68-
.render();
65+
SelectStatementProvider selectStatement = selectModel.render(renderingContext);
6966

7067
return FragmentAndParameters
7168
.withFragment("(" + selectStatement.getSelectStatement() + ")") //$NON-NLS-1$ //$NON-NLS-2$
@@ -74,10 +71,7 @@ private FragmentAndParameters renderSelect(SelectModel selectModel) {
7471
}
7572

7673
private FragmentAndParameters renderSelect(UnionQuery unionQuery) {
77-
SelectStatementProvider selectStatement = SelectRenderer.withSelectModel(unionQuery.selectModel())
78-
.withRenderingContext(renderingContext)
79-
.build()
80-
.render();
74+
SelectStatementProvider selectStatement = unionQuery.selectModel().render(renderingContext);
8175

8276
return FragmentAndParameters.withFragment(
8377
unionQuery.connector() + " (" + selectStatement.getSelectStatement() + ")") //$NON-NLS-1$ //$NON-NLS-2$

src/main/java/org/mybatis/dynamic/sql/select/render/TableExpressionRenderer.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,7 @@ public FragmentAndParameters visit(SqlTable table) {
3939

4040
@Override
4141
public FragmentAndParameters visit(SubQuery subQuery) {
42-
SelectStatementProvider selectStatement = new SelectRenderer.Builder()
43-
.withSelectModel(subQuery.selectModel())
44-
.withRenderingContext(renderingContext)
45-
.build()
46-
.render();
42+
SelectStatementProvider selectStatement = subQuery.selectModel().render(renderingContext);
4743

4844
String fragment = "(" + selectStatement.getSelectStatement() + ")"; //$NON-NLS-1$ //$NON-NLS-2$
4945

src/main/java/org/mybatis/dynamic/sql/update/render/SetPhraseVisitor.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020

2121
import org.mybatis.dynamic.sql.render.RenderedParameterInfo;
2222
import org.mybatis.dynamic.sql.render.RenderingContext;
23-
import org.mybatis.dynamic.sql.select.render.SelectRenderer;
2423
import org.mybatis.dynamic.sql.select.render.SelectStatementProvider;
2524
import org.mybatis.dynamic.sql.util.AbstractColumnMapping;
2625
import org.mybatis.dynamic.sql.util.ColumnToColumnMapping;
@@ -85,11 +84,7 @@ public <T> Optional<FragmentAndParameters> visit(ValueWhenPresentMapping<T> mapp
8584

8685
@Override
8786
public Optional<FragmentAndParameters> visit(SelectMapping mapping) {
88-
SelectStatementProvider selectStatement = SelectRenderer.withSelectModel(mapping.selectModel())
89-
.withRenderingContext(renderingContext)
90-
.build()
91-
.render();
92-
87+
SelectStatementProvider selectStatement = mapping.selectModel().render(renderingContext);
9388
String fragment = mapping.mapColumn(renderingContext::aliasedColumnName)
9489
+ " = (" //$NON-NLS-1$
9590
+ selectStatement.getSelectStatement()

src/main/java/org/mybatis/dynamic/sql/where/render/CriterionRenderer.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import org.mybatis.dynamic.sql.SqlCriterion;
3131
import org.mybatis.dynamic.sql.SqlCriterionVisitor;
3232
import org.mybatis.dynamic.sql.render.RenderingContext;
33-
import org.mybatis.dynamic.sql.select.render.SelectRenderer;
3433
import org.mybatis.dynamic.sql.select.render.SelectStatementProvider;
3534
import org.mybatis.dynamic.sql.util.FragmentAndParameters;
3635
import org.mybatis.dynamic.sql.util.FragmentCollector;
@@ -121,11 +120,7 @@ private <T> Optional<FragmentAndParameters> renderColumnAndCondition(ColumnAndCo
121120
private FragmentAndParameters renderExists(ExistsCriterion criterion) {
122121
ExistsPredicate existsPredicate = criterion.existsPredicate();
123122

124-
SelectStatementProvider selectStatement = SelectRenderer
125-
.withSelectModel(existsPredicate.selectModelBuilder().build())
126-
.withRenderingContext(renderingContext)
127-
.build()
128-
.render();
123+
SelectStatementProvider selectStatement = existsPredicate.selectModelBuilder().build().render(renderingContext);
129124

130125
String fragment = existsPredicate.operator()
131126
+ " (" //$NON-NLS-1$

src/main/java/org/mybatis/dynamic/sql/where/render/DefaultConditionVisitor.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,7 @@ public FragmentAndParameters visit(AbstractTwoValueCondition<T> condition) {
9494

9595
@Override
9696
public FragmentAndParameters visit(AbstractSubselectCondition<T> condition) {
97-
SelectStatementProvider selectStatement = SelectRenderer.withSelectModel(condition.selectModel())
98-
.withRenderingContext(renderingContext)
99-
.build()
100-
.render();
97+
SelectStatementProvider selectStatement = condition.selectModel().render(renderingContext);
10198

10299
String finalFragment = condition.operator()
103100
+ " (" //$NON-NLS-1$

0 commit comments

Comments
 (0)