以下映射器配置工作正常(MyPojo 没有其他构造函数)
class MyPojo {
private Long id;
private String name;
// No constructor
}
DynamicJdbcMapper<MyPojo> mapper = JdbcMapperFactory.newInstance().addKeys("id").newMapper(MyPojo.class);
ResultQuery<?> query = dsl
.select(
MY_TABLE.ID.as("id"),
MY_TABLE.NAME.as("name"))
.from(MY_TABLE).where(MY_TABLE.ID.eq(1));
MyPojo pojo = mapper.stream(query.fetchResultSet()).findFirst().orElse(null);
但就我而言,MyPojo 是一个遗留类,并带有一大堆构造函数:
class MyPojo {
private Long id;
private String name;
public MyPojo(Long id) {
this.id = id;
}
}
这会导致映射器无法工作。我收到以下错误:
Could not find eligible property for 'name' on class com.bla.bla.MyPojo
很明显,映射器正试图寻找一个参数与 SELECT 子句中的每个列匹配的构造函数。我不想添加重载的构造函数(SELECT 列列表很大)。
如何设置映射器来调用设置器而不是构造器?