|
28 | 28 | import org.mybatis.dynamic.sql.SqlColumn;
|
29 | 29 | import org.mybatis.dynamic.sql.SqlTable;
|
30 | 30 | import org.mybatis.dynamic.sql.insert.render.FieldAndValue;
|
| 31 | +import org.mybatis.dynamic.sql.insert.render.FieldAndValueAndParameters; |
| 32 | +import org.mybatis.dynamic.sql.insert.render.FieldAndValueAndParametersCollector; |
31 | 33 | import org.mybatis.dynamic.sql.insert.render.FieldAndValueCollector;
|
32 | 34 | import org.mybatis.dynamic.sql.insert.render.InsertStatementProvider;
|
33 | 35 | import org.mybatis.dynamic.sql.render.RenderingStrategies;
|
@@ -152,6 +154,40 @@ private FieldAndValue newFieldAndValue(String fieldName, String valuePhrase) {
|
152 | 154 | .build();
|
153 | 155 | }
|
154 | 156 |
|
| 157 | + @Test |
| 158 | + public void testParallelStreamWithParameters() { |
| 159 | + |
| 160 | + List<FieldAndValueAndParameters> mappings = new ArrayList<>(); |
| 161 | + |
| 162 | + mappings.add(newFieldAndValueAndParameter(id.name(), "{p1}", "p1", 1)); |
| 163 | + mappings.add(newFieldAndValueAndParameter(firstName.name(), "{p2}", "p2", "Fred")); |
| 164 | + mappings.add(newFieldAndValueAndParameter(lastName.name(), "{p3}", "p3", "Flintstone")); |
| 165 | + mappings.add(newFieldAndValueAndParameter(occupation.name(), "{p4}", "p4", "Driver")); |
| 166 | + |
| 167 | + FieldAndValueAndParametersCollector collector = |
| 168 | + mappings.parallelStream().collect(Collector.of( |
| 169 | + FieldAndValueAndParametersCollector::new, |
| 170 | + FieldAndValueAndParametersCollector::add, |
| 171 | + FieldAndValueAndParametersCollector::merge)); |
| 172 | + |
| 173 | + String expectedColumnsPhrase = "(id, first_name, last_name, occupation)"; |
| 174 | + String expectedValuesPhrase = "values ({p1}, {p2}, {p3}, {p4})"; |
| 175 | + |
| 176 | + assertAll( |
| 177 | + () -> assertThat(collector.columnsPhrase()).isEqualTo(expectedColumnsPhrase), |
| 178 | + () -> assertThat(collector.valuesPhrase()).isEqualTo(expectedValuesPhrase), |
| 179 | + () -> assertThat(collector.parameters().size()).isEqualTo(4) |
| 180 | + ); |
| 181 | + } |
| 182 | + |
| 183 | + private FieldAndValueAndParameters newFieldAndValueAndParameter(String fieldName, String valuePhrase, String parameterName, |
| 184 | + Object parameterValue) { |
| 185 | + return FieldAndValueAndParameters.withFieldName(fieldName) |
| 186 | + .withValuePhrase(valuePhrase) |
| 187 | + .withParameter(parameterName, parameterValue) |
| 188 | + .build(); |
| 189 | + } |
| 190 | + |
155 | 191 | @Test
|
156 | 192 | public void testParallelStreamForMultiRecord() {
|
157 | 193 |
|
|
0 commit comments