public class Foo {
@DatabaseField(generatedId = true)
private int id;
@DatabaseField // no default-value specified
private Integer someIntegerField;
}
...
Foo foo = new Foo();
// leave someIntegerField as a null value without a default-value defined
assertEquals(1, dao.create(foo));
Foo result = dao.queryForId(foo.id);
assertNotNull(result);
// by default the field that we did not initialize comes back as null
assertNull(result.someIntegerField);
1条答案
按热度按时间sqougxex1#
是否可以使dao.create()将null插入默认的null整数字段而不是0?
当然是。
我还没有找到一种方法如何将null值作为defaultvalue参数提供。
默认情况下,任何未初始化的字段都应在数据库中指定该类型的默认值。例如,一个
int
创建实体时未设置值的字段应在数据库中获取值0。任何对象字段(例如Integer
)默认值已经存在null
. 你所需要做的就是不要提供defaultValue
.例如,以下代码适用于我:
如果您提供一个默认值,那么ormlite将尝试将其转换为一个整数值,以便它可以分配它。只需删除默认值设置,它应该可以工作。