1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package examples.springbatch.common;
17
18 import static examples.springbatch.mapper.PersonDynamicSqlSupport.*;
19 import static org.mybatis.dynamic.sql.SqlBuilder.isEqualTo;
20
21 import java.util.Objects;
22
23 import org.mybatis.dynamic.sql.render.RenderingStrategies;
24 import org.mybatis.dynamic.sql.update.UpdateDSL;
25 import org.mybatis.dynamic.sql.update.render.UpdateStatementProvider;
26 import org.springframework.core.convert.converter.Converter;
27 import org.springframework.stereotype.Component;
28
29 @Component
30 public class UpdateStatementConvertor implements Converter<PersonRecord, UpdateStatementProvider> {
31
32 @Override
33 public UpdateStatementProvider convert(PersonRecord source) {
34 return UpdateDSL.update(person)
35 .set(firstName).equalTo(source::firstName)
36 .set(lastName).equalTo(source::lastName)
37 .where(id, isEqualTo(Objects.requireNonNull(source.id())))
38 .build()
39 .render(RenderingStrategies.MYBATIS3);
40 }
41 }