我使用DAO将对象数组(例如User [])插入到Room表中:
python
但是,User []中的某些对象可能为空。在这种情况下,insertAll()方法将引发NullPointerException。
是否可以以某种方式跳过空值?我宁愿使用@Insert批注,而不是编写自定义插入查询或预先过滤掉空值。
答案 0 :(得分:1)
尝试对可以具有空值的实体字段使用默认值注释,例如:@ColumnInfo(defaultValue = "CURRENT_TIMESTAMP")
同样对于可以有空值的实体字段放置@Nullable 注解。
答案 1 :(得分:0)
此处的某人可能知道某种库定义的方法来完成您想做的事情,但是我首先想到了这种解决方案。
答案 2 :(得分:0)
我希望Room可以实现一个实用程序来实现此目的,例如像@Ignore(null)
这样的注释,但事实并非如此。这是我目前的解决方案:
调用ArrayUtils.removeAllOccurences(users, null)
的方法org.apache.commons.lang3.ArrayUtils
,并将结果用作insertAll()
的参数。