JdbcTemplate映射器空值

Alv*_*vin 1 java jdbctemplate lombok

POJO 与Lombak

@NoArgsConstructor
@AllArgsConstructor
@Getter @Setter
public class Order {
    private int Id;
    private int OrderId;
    private String Status;
}
Run Code Online (Sandbox Code Playgroud)

使用JdbcTemplateI 选择记录:

String sql = "SELECT Id, OrderId, Stataus" +
                "ORDER BY t.Sort";
        return jdbcTemplate.query(sql, new Object[]{IDU}, new BeanPropertyRowMapper<>(Order .class));
Run Code Online (Sandbox Code Playgroud)

由于某些 OrderId 是null,我收到此错误:

Failed to convert property value of type 'null' to required type 'int' for property 'OrderId';
Run Code Online (Sandbox Code Playgroud)

我可以在不使用 的情况下解决这个问题custom mapper吗?

cac*_*co3 5

int是 Java 中的原语,但它不可能是null

无法BeanPropertyRowMapper转换nullint,因此引发异常。

要解决此问题,您可以:

但请记住

如果您使用生成的 bean 中的值来更新数据库,则原始值将被设置为原始值的默认值而不是null.