房间持久性:实体和 POJO 必须具有可用的构造函数
2022-09-03 06:58:38
我正在尝试通过 Room Persistence 库将数据库添加到我的 Android 应用中。在编译时,获取上述错误。此外,Room找不到我的getters,尽管我可以在我的代码中清楚地看到所有这些。
以下是我对实体的代码:
@Entity(tableName = "users", indices = @Index(value = "username", unique = true))
public class User {
@NonNull
public String getuId() {
return uId;
}
public void setuId(@NonNull String uId) {
this.uId = uId;
}
public String getuUsername() {
return uUsername;
}
public void setuUsername(String uUsername) {
this.uUsername = uUsername;
}
@NonNull
public String getuPassword() {
return uPassword;
}
public void setuPassword(@NonNull String uPassword) {
this.uPassword = uPassword;
}
public String getuEmail() {
return uEmail;
}
public void setuEmail(String uEmail) {
this.uEmail = uEmail;
}
@NonNull
@PrimaryKey
@ColumnInfo(name = "user_id")
private String uId;
@ColumnInfo(name = "username")
private String uUsername;
@NonNull
@ColumnInfo(name = "password")
private String uPassword;
@ColumnInfo(name = "email")
private String uEmail;
@Ignore
public User(String userName, String email, String password){
uId = UUID.randomUUID().toString();
uUsername = userName;
uEmail = email;
uPassword = password;
}
public User(@NonNull String id, String username, String email,@NonNull String password){
this.uId = id;
this.uUsername = username;
this.uPassword = password;
this.uEmail = email;
}
}
我得到的错误:
错误:(14, 8) 错误:实体和 Pojos 必须具有可用的公共构造函数。可以有一个空构造函数,也可以有一个参数与字段匹配的构造函数(按名称和类型)。尝试了以下构造函数,但它们无法匹配: User(java.lang.String,java.lang.String,java.lang.String,java.lang.String) : [id : null, username : null, email : null, password : null]
还有这个:
错误:(53, 20) 错误: 找不到字段的 getter。错误:(56, 20) 错误: 找不到字段的 getter。错误:(60, 20) 错误: 找不到字段的 getter。错误:(63, 20) 错误: 找不到字段的 getter。