【问题标题】:Room DB - Running insertion into M2M Relation inside TransactionRoom DB - 在事务中运行插入 M2M 关系
【发布时间】:2018-07-07 12:04:47
【问题描述】:

我正在将一本新书插入到我的书表中,并在尝试将其分配给多对多关系表之后。海事组织这应该在事务中运行。 (因为如果 m2m 插入失败,有关房地产的信息就会丢失)。我的代码现在如下所示,但由于静态上下文错误,我无法访问 BookUserXRefDao.insert(bookUser); 查询而失败。

有没有简单的方法来解决这个问题?

@Transaction
public void insertBook(Book theBook, List<Integer> userIds){
    long newBookId= insert(theBook);
    //Insert into the m2m relation
    BookUserXRef[] bookUser = new BookUserXRef[userIds.size()];
    for (int i = 0; i < userIds.size(); i++) {
        BookUserXRef[i] = new BookUserXRef(newBookId,userIds.get(i));
    }
    BookUserXRefDao.insert(bookUser);
}

【问题讨论】:

    标签: android sql transactions android-room


    【解决方案1】:

    刚刚意识到我可以从我的事务中访问单例数据库实例。

    所以我可以使用

    AppDb.getAppDb().BookUserXRefDao().insert(bookUser);

    这解决了问题。

    【讨论】:

      猜你喜欢
      • 2017-11-23
      • 1970-01-01
      • 1970-01-01
      • 2020-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多