我需要更新,如果不存在,则向 ROOM DB 插入行。
我做这个: productRepository.updateProducts(productsResponse.getProductItems());
和:
@Override
public void updateProducts(final List<ProductItem> products) {
new Thread(() -> {
for (ProductItem item : products) {
Product product = createProduct(item);
productDao.insert(product);
}
}).start();
}
在 DAO 中:
@Insert
void insert(Product products);
但我有方法
@Update
void update(Product product);
我有一些问题:
这两种方法都是无效的。插入后如何返回保存的产品或布尔标志或插入计数?
如果我尝试调用
update
并且我没有行,它会被插入吗?如何更新(如果不是 - 插入)行并返回计数更新或插入的行?
原文由 ip696 发布,翻译遵循 CC BY-SA 4.0 许可协议
你可以像这样插入或更新: