我有以下实体
redirect_to
但是当我尝试使用房间持久性库在android中为这个实体创建表时,我收到以下错误。
public class User {
@PrimaryKey
private final long id;
private String _id;
private String userName;
private String email;
}
包含Error:(18, 20) error: Ambiguous getter for Field(element=_id, name=_id, type=java.lang.String, affinity=TEXT, columnName=_id, parent=null, indexed=false). All of the following match: getId, get_id. You can @Ignore the ones that you don't want to match.
字段,以便我可以直接将_id
api的响应转换为node.js
数据库。
答案 0 :(得分:8)
你需要为每个私有字段设置setter和getter,否则你应该将它们公开。另一个可能导致此错误的原因是有一个字段的两个getter或setter。
答案 1 :(得分:3)
房间:
就我而言
public String getpBSalesTotal() {
return pBSalesTotal;
}
public void setpBSalesTotal(String pBSalesTotal) {
this.pBSalesTotal = pBSalesTotal;
}
是我想要作为数据库表的上一个POJO类。
我刚刚将小写的“” p“”更改为大写“” P“”,这解决了我的问题 错误
。像下面一样
public String getPBSalesTotal() {
return pBSalesTotal;
}
public void setPBSalesTotal(String pBSalesTotal) {
this.pBSalesTotal = pBSalesTotal;
}
生成这种类型的
POJO表单JSON
您可以使用此LINK。它适用于Room。
答案 2 :(得分:2)
根据文档,您需要为每个字段声明getter。
我可以看到你没有用@Entity注释声明你的类。 另外,请确保您使用的是最新版本的库,因为它仍处于开发阶段,您需要进行一些突破性的更改。
请参阅下面的示例,对于我的以下api版本的Room,它正常。
api 'android.arch.persistence.room:runtime:1.0.0-alpha8'
或者您也可以使用“alpha9”。 希望这能解决你的问题。
@Entity (tableName = "user")
public class User {
@PrimaryKey
private int id;
private String _id;
@ColumnInfo(name = "user_name")
private String userName;
@NonNull
private String passwrod;
public User(String userName, @NonNull String passwrod) {
this.userName = userName;
this.passwrod = passwrod;
}
@Ignore
public User() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPasswrod() {
return passwrod;
}
public void setPasswrod(String passwrod) {
this.passwrod = passwrod;
}
public String get_id() {
return _id;
}
public void set_id(String _id) {
this._id = _id;
}
}
答案 3 :(得分:1)
getter的返回类型应该与属性数据类型相同,如果你有数据类型int的属性,当我发现它解决了我的问题。
祝你好运。答案 4 :(得分:1)
我也面临同样的问题。当我删除
“ _”下划线符号,来自“ _id”
然后工作正常。
public class User {
@PrimaryKey
private final long id;
private String myid;
private String userName;
private String email;
}
它对我有用,我希望对其他人也有用。谢谢。
答案 5 :(得分:0)