我有一个表,我最近必须将其添加到数据类型integer的字段中。
我在PostgreSQL
中使用了hibernate和我的数据库
我获取对应于表的对象的查询现在为最近添加的字段返回null。我试图检查它们是否为null,如果值为null,则设置0
。
我无法找到办法做到这一点....任何人都可以帮助....
hibernate查询返回一个与我的表对应的pojo,我想检查该pojo中的一个属性是null
,但该属性是一个整数,这是我的麻烦。
答案 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,这解决了问题。
注意:修改默认值时请注意可能丢失的信息。