JdbcTemplate映射器null值

时间:2019-04-12 12:13:38

标签: java jdbctemplate lombok

POJO与Lombak

@NoArgsConstructor
@AllArgsConstructor
@Getter @Setter
public class Order {
    private int Id;
    private int OrderId;
    private String Status;
}

使用JdbcTemplate选择记录:

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

由于某些OrderId为null,因此出现此错误:

Failed to convert property value of type 'null' to required type 'int' for property 'OrderId';

我可以不使用custom mapper来解决此问题吗?

2 个答案:

答案 0 :(得分:3)

只需将其提取到Integer中即可,而不是int

答案 1 :(得分:1)

int是Java中的基元,不能为null

BeanPropertyRowMapper无法将null转换为int,因此引发了异常。

要解决此问题,您可以:

但是请记住

  

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