如何处理查询返回的空值,其中字段中没有值,数据类型为整数

时间:2015-04-09 16:41:36

标签: java hibernate postgresql

我有一个表,我最近必须将其添加到数据类型integer的字段中。 我在PostgreSQL中使用了hibernate和我的数据库 我获取对应于表的对象的查询现在为最近添加的字段返回null。我试图检查它们是否为null,如果值为null,则设置0。 我无法找到办法做到这一点....任何人都可以帮助.... hibernate查询返回一个与我的表对应的pojo,我想检查该pojo中的一个属性是null,但该属性是一个整数,这是我的麻烦。

3 个答案:

答案 0 :(得分:0)

如果你想要它0如果为null,那么你可以在声明中给出这个值,

Integer a=0;

如果使用注释,则使用可以尝试默认值。像

@Column(name="col_name", columnDefinition=" default '0' ")

另一种方法可以是setter方法,如果该字段是私有的,并且你有公共setter方法,那么在该setter中检查null

public void setA(Integer a)
{
    if(a==null)
    {
        this.a=0;
    }else this.a=a
}

答案 1 :(得分:0)

我建议您在POJO中使用int而不是Integer。这种方式null不会进入数据库。如果 使用Integer,请确保为其指定初始值0,如果您有任何setter,请确保检查传入的参数不是{ {1}}。

所以要么:

null

或:

public class MyPOJO {

    private int intVal = 0;
    ...
}

答案 2 :(得分:0)

我尝试了所有答案,例如设置nullable = true和columnDefinition ="默认' 0' "但似乎没什么用。所以我将列的默认值更改为0,这解决了问题。

注意:修改默认值时请注意可能丢失的信息。