java - 如何更新 Room 数据库中的现有行?

标签 java android android-room

我有一个 DAO 类,用于在特定日期已存在注释时更新注释。如果有注释,DAO 会创建一个新注释。这是 DAO 接口(interface):

@Insert(onConflict = OnConflictStrategy.REPLACE)
public long insertNote(Note note);

@Update
public int updateNote(Note note);

以下是我从数据库读取所有数据的方法:

viewModel = ViewModelProviders.of(this).get(NoteListViewModel.class);
viewModel.getNoteList().observe(MainActivity.this, new Observer<List<Note>>() {
      @Override
      public void onChanged(@Nullable List<Note> noteList) {
            Log.d("Note List Items", noteList.toString());
      }
});

现在,我不知道如何检查、比较和更新数据库中的现有行。

最佳答案

您的Note @Entity 类有一个主键。 updateNote() 将根据该主键更新行。

关于java - 如何更新 Room 数据库中的现有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47660219/

相关文章:

java - 我如何在 MySQL 数据库中保存图像 - 给出的代码

java - Stuckup with - HikariCP : JZ0C0: Connection is already closed (Sybase DB with SpringBoot v2. 1.7)

android - 使用九补丁图像作为按钮android的背景

android - 使用 Room 的 @Relation 和 ORDER BY

android - 求教,如何设置 'field'的notnull值'为false?

java.lang.VerifyError : class com. intellij.junit4.JUnit4TestRunnerUtil$5 覆盖 final方法 getRunner.()Lorg/junit/runner/Runner;

java - 如何抓取访问方法的线程?

java - Android 中的 JSON 数据加密和解密

android - Unity Android 构建为 Application.streamingAssetsPath 中的文件提供 DirectoryNotFoundException

Android Room - 类型转换器在实体字段范围内不工作