首页 > 解决方案 > 使用带有 Android Room 的 @Insert 注释跳过 null

问题描述

我使用 DAO 将对象数组(例如 User[])插入到 Room 表中:

@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertAll(User... user);

但是,User[] 中的某些对象可能为空。在这种情况下,insertAll() 方法会抛出 NullPointerException。

是否有可能以某种方式跳过空值?我更喜欢使用 @Insert 注释,而不是编写自定义插入查询或预先过滤掉空值。

标签: javaannotationssql-insertandroid-room

解决方案


尝试对可以具有空值的实体字段使用默认值注释,例如:@ColumnInfo(defaultValue = "CURRENT_TIMESTAMP")

同样对于可以具有空值的实体字段,请放置 @Nullable 注释。


推荐阅读