【发布时间】:2018-09-06 09:07:59
【问题描述】:
我正在使用 Room Database 编写 Android 应用程序。我的数据库包含带有此类代码的 GroupVc 实体:
@Entity
public class GroupVc {
@ColumnInfo(name = "language")
private String language;
@NonNull
@PrimaryKey
@ColumnInfo(name = "name_group")
private String nameGroup;
public GroupVc(String language, String nameGroup) {
this.language = language;
this.nameGroup = nameGroup;
}
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
@NonNull
public String getNameGroup() {
return nameGroup;
}
@NonNull
public void setNameGroup(String nameGroup) {
this.nameGroup = nameGroup;
}
}
如您所见,我的实体类包含两列,其中 nameGroup 是我的 PrimaryKey。在我的应用程序中,我想让用户查看完整的组列表,并通过输入新组的名称来更改组 DialogFragments 的名称。为了实现这样的功能,我创建了下一个 DAO @Query 方法:
@Dao
public interface GroupVcDao {
@Query("UPDATE groupvc SET name_group= :newName WHERE name_group= :currentName")
void updateNameOfGroup(String currentName, String newName);
}
在这个 QUERY 中,我想通过从 RecyclerView(currentName 参数)获取 GroupVc 的现有名称并从 DialogFragment(newName 参数)应用新名称来更改 GroupVc 的名称。 我的问题是这个 QUERY 没有带来任何效果,也没有更新名称。虽然我没有收到任何错误或异常。所以我需要知道:这样的查询是否正确?是否可以编写主键同时改变值和条件的更新查询?
这是我在 GitHub 上的完整项目的链接 https://github.com/LAHomieJob/VocaNote
【问题讨论】:
-
您找到解决方案了吗?我也面临同样的问题
-
男人!你救了我的命!!谢谢!!
-
干得好!!!到处都在找这个……你去吧!谢谢!
标签: android sql sql-update