欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

A null value cannot be assigned to a primitive type

程序员文章站 2022-04-21 15:43:38
...

今天使用jdbctemplate 查询数据封装到 实体里面时出现以下错误,记录一下。

错误信息:

org.springframework.beans.TypeMismatchException: 
Failed to convert property value of type 'null' to required type 'float' for property 'longitude’; 
nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [null] to type [float] for value 'null’; 
nested exception is java.lang.IllegalArgumentException: A null value cannot be assigned to a primitive type

测试查询语句:

@Test
public void queryTest(){
    String sql = "select * from DIM_WDS_POINT limit 10 ";
    List<DimWdsPoint> dimWdsPoints = jdbcTemplate.query(sql, new Object[]{}, new BeanPropertyRowMapper<DimWdsPoint>(DimWdsPoint.class));
    dimWdsPoints.forEach(System.out::println);
}

实体类:DimWdsPoint.class 的 longitude 属性

/**
 * 经度
 */
private float longitude;

原因是 由于字段 longitude 在实体类中使用的是 float类型,但是数据库中查询出来的数据为null ,赋值的时候是不能把null 赋值给Java 基础类型的。

这里就有一个Java 的基础知识点:Java 基础类型不能为null。

解决办法:把实体映射的类型改为包装类型就OK。

private Float longitude;
相关标签: Java基础