gpt4 book ai didi

Android Room onConflict = OnConflictStrategy.IGNORE 不工作

转载 作者:行者123 更新时间:2023-12-05 00:06:00 25 4
gpt4 key购买 nike

我在我的 android 应用程序中使用房间数据库。

在向我添加的用户中插入数据时:

 // Not working onConflict = OnConflictStrategy.IGNORE/REPLACE
@Insert(onConflict = OnConflictStrategy.IGNORE)
void insertUser(User users);

但它不起作用。我也尝试了 onConflictStrategy.REPLACE 但它仍然无法正常工作。

用户类(有Getter和Setter):

@Entity
public class User {

@PrimaryKey(autoGenerate = true)
@NonNull
@ColumnInfo(name = "id")
private Integer id;

@ColumnInfo(name = "user_name")
@NonNull
private String name;

@ColumnInfo(name = "email")
private String email;

public User(@NonNull String name, String email) {
this.name = name;
this.email = email;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user = (User) o;
return Objects.equals(name, user.name) &&
Objects.equals(email, user.email);
}

@Override
public int hashCode() {

return Objects.hash(name, email);
}
}

我也查看了其他问题并尝试了他们的解决方案,但仍然面临问题。

最佳答案

您需要添加唯一索引:

@Entity(indices = {@Index(value = {"user_name", "email"}, unique = true)})
public class User {
...
}

关于Android Room onConflict = OnConflictStrategy.IGNORE 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56256981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com