Skip to content

Commit 3871f0b

Browse files
committed
spring-projects#282 - Expose 'RenderContext' from 'StatementMapper' to be able to build SQL manually
1 parent a13c2c8 commit 3871f0b

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

Diff for: src/main/java/org/springframework/data/r2dbc/core/DefaultStatementMapper.java

+18
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,15 @@ public PreparedOperation<Delete> getMappedObject(DeleteSpec deleteSpec) {
226226
return getMappedObject(deleteSpec, null);
227227
}
228228

229+
/*
230+
* (non-Javadoc)
231+
* @see org.springframework.data.r2dbc.function.StatementMapper#getRenderContext()
232+
*/
233+
@Override
234+
public RenderContext getRenderContext() {
235+
return renderContext;
236+
}
237+
229238
private PreparedOperation<Delete> getMappedObject(DeleteSpec deleteSpec,
230239
@Nullable RelationalPersistentEntity<?> entity) {
231240

@@ -375,5 +384,14 @@ public PreparedOperation<?> getMappedObject(UpdateSpec updateSpec) {
375384
public PreparedOperation<?> getMappedObject(DeleteSpec deleteSpec) {
376385
return DefaultStatementMapper.this.getMappedObject(deleteSpec, this.entity);
377386
}
387+
388+
/*
389+
* (non-Javadoc)
390+
* @see org.springframework.data.r2dbc.function.StatementMapper#getRenderContext()
391+
*/
392+
@Override
393+
public RenderContext getRenderContext() {
394+
return DefaultStatementMapper.this.getRenderContext();
395+
}
378396
}
379397
}

Diff for: src/main/java/org/springframework/data/r2dbc/core/StatementMapper.java

+11
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.springframework.data.relational.core.sql.Expression;
3535
import org.springframework.data.relational.core.sql.SqlIdentifier;
3636
import org.springframework.data.relational.core.sql.Table;
37+
import org.springframework.data.relational.core.sql.render.RenderContext;
3738
import org.springframework.lang.Nullable;
3839

3940
/**
@@ -177,6 +178,16 @@ default DeleteSpec createDelete(SqlIdentifier table) {
177178
return DeleteSpec.create(table);
178179
}
179180

181+
/**
182+
* Returns {@link RenderContext}.
183+
*
184+
* @return {@link RenderContext} instance or {@literal null} if {@link RenderContext} is not available
185+
*/
186+
@Nullable
187+
default RenderContext getRenderContext() {
188+
return null;
189+
}
190+
180191
/**
181192
* {@code SELECT} specification.
182193
*/

0 commit comments

Comments
 (0)