java - 使用带有 Android Room 的 @Insert 注释跳过 null
问题描述
我使用 DAO 将对象数组(例如 User[])插入到 Room 表中:
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertAll(User... user);
但是,User[] 中的某些对象可能为空。在这种情况下,insertAll() 方法会抛出 NullPointerException。
是否有可能以某种方式跳过空值?我更喜欢使用 @Insert 注释,而不是编写自定义插入查询或预先过滤掉空值。
解决方案
尝试对可以具有空值的实体字段使用默认值注释,例如:@ColumnInfo(defaultValue = "CURRENT_TIMESTAMP")
同样对于可以具有空值的实体字段,请放置 @Nullable 注释。
推荐阅读
- ruby - 让 `super` 通过包含的模块调用父类
- apache-spark - Apache Spark 不创建新会话
- linux - 虚拟内存如何隔离不同的进程?
- tensorflow - 线性回归和估计器返回错误的损失。张量流
- wso2 - Identity Server 不验证 SAML LogoutRequest 签名
- java - Android:E/RecyclerView:没有附加适配器;跳过布局
- c++ - 如何在主事件循环仍在旋转的情况下通知线程在应用程序退出时关闭
- python - Heroku 烧瓶应用程序失败:找不到 importlib.util 模块错误
- css - 在最后一帧停止 CSS 淡入淡出动画幻灯片
- javascript - 如何重构这个 JS 地理定位代码?