25
25
import org .mybatis .dynamic .sql .render .TableAliasCalculator ;
26
26
import org .mybatis .dynamic .sql .select .render .SelectRenderer ;
27
27
import org .mybatis .dynamic .sql .select .render .SelectStatementProvider ;
28
+ import org .mybatis .dynamic .sql .util .AbstractColumnMapping ;
28
29
import org .mybatis .dynamic .sql .util .ColumnToColumnMapping ;
29
30
import org .mybatis .dynamic .sql .util .ConstantMapping ;
30
31
import org .mybatis .dynamic .sql .util .FragmentAndParameters ;
@@ -71,6 +72,15 @@ public Optional<FragmentAndParameters> visit(StringConstantMapping mapping) {
71
72
72
73
@ Override
73
74
public <T > Optional <FragmentAndParameters > visit (ValueMapping <T > mapping ) {
75
+ return buildFragment (mapping , mapping .value ());
76
+ }
77
+
78
+ @ Override
79
+ public <T > Optional <FragmentAndParameters > visit (ValueWhenPresentMapping <T > mapping ) {
80
+ return mapping .value ().flatMap (v -> buildFragment (mapping , v ));
81
+ }
82
+
83
+ private <T > Optional <FragmentAndParameters > buildFragment (AbstractColumnMapping mapping , T value ) {
74
84
String mapKey = RenderingStrategy .formatParameterMapKey (sequence );
75
85
76
86
String jdbcPlaceholder = mapping .mapColumn (toJdbcPlaceholder (mapKey ));
@@ -79,25 +89,13 @@ public <T> Optional<FragmentAndParameters> visit(ValueMapping<T> mapping) {
79
89
+ jdbcPlaceholder ;
80
90
81
91
return FragmentAndParameters .withFragment (setPhrase )
82
- .withParameter (mapKey , mapping . value () )
92
+ .withParameter (mapKey , value )
83
93
.buildOptional ();
84
94
}
85
-
86
- @ Override
87
- public <R > Optional <FragmentAndParameters > visit (ValueWhenPresentMapping <R > mapping ) {
88
- return mapping .value ().flatMap (v -> {
89
- String mapKey = RenderingStrategy .formatParameterMapKey (sequence );
90
-
91
- String jdbcPlaceholder = mapping .mapColumn (toJdbcPlaceholder (mapKey ));
92
- String setPhrase = mapping .mapColumn (SqlColumn ::name )
93
- + " = " //$NON-NLS-1$
94
- + jdbcPlaceholder ;
95
-
96
- return FragmentAndParameters .withFragment (setPhrase )
97
- .withParameter (mapKey , v )
98
- .buildOptional ();
99
-
100
- });
95
+
96
+ private Function <SqlColumn <?>, String > toJdbcPlaceholder (String parameterName ) {
97
+ return column -> column .renderingStrategy ().orElse (renderingStrategy )
98
+ .getFormattedJdbcPlaceholder (column , RenderingStrategy .DEFAULT_PARAMETER_PREFIX , parameterName );
101
99
}
102
100
103
101
@ Override
@@ -127,9 +125,4 @@ public Optional<FragmentAndParameters> visit(ColumnToColumnMapping mapping) {
127
125
return FragmentAndParameters .withFragment (setPhrase )
128
126
.buildOptional ();
129
127
}
130
-
131
- private Function <SqlColumn <?>, String > toJdbcPlaceholder (String parameterName ) {
132
- return column -> column .renderingStrategy ().orElse (renderingStrategy )
133
- .getFormattedJdbcPlaceholder (column , RenderingStrategy .DEFAULT_PARAMETER_PREFIX , parameterName );
134
- }
135
128
}
0 commit comments