是否可以使 OrmLite 的 dao.create 在 int 字段中插入一个空值而不是 0?


是否可以

dao.create()null插入默认的空整数字段而不是 0?

根据文档,@DatabaseField注释的canBeNull参数无论如何默认为 true,我还没有找到如何将null值作为defaultValue参数提供的方法。

是否可以使 dao.create(( 将 null 插入到默认的 null 整数字段中而不是 0?

是的,你可以这样做。

我还没有找到一种方法来输入 null - 值作为默认值 - 参数。

默认情况下,应在数据库中为任何未初始化的字段分配该类型的默认值。 例如,创建实体时未设置任何值的int字段应在数据库中获取值 0。 对于任何对象字段(例如 Integer(,默认值已经null 。 您需要做的就是 不要提供defaultValue .

例如,以下代码对我有用:

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);
// by default the field that we did not initialize comes back as null
assertNull(result.someIntegerField);

如果您提供默认值,则 ORMLite 将尝试将其转换为整数值,以便它可以分配它。 只需删除默认值设置,它应该可以工作。

相关内容

  • 没有找到相关文章

最新更新