错误:找不到字段的设置器 - 房间

Posted

技术标签:

【中文标题】错误:找不到字段的设置器 - 房间【英文标题】:error: Cannot find setter for field - Room 【发布时间】:2020-10-17 05:28:45 【问题描述】:

我真的不知道为什么会出现这个错误。代码看起来很简单。

@Entity(indices = @Index("clientLocalId"))
.
.

private @PrimaryKey String clientLocalId;


public String getClientLocalId() 
    return clientLocalId;


public void setClientLocalId(long idInvoice, String receipt) 
    this.clientLocalId = String.valueOf(idInvoice) + " " + receipt;

我试图在 client 中更改名称,重新启动并清除缓存,同样的错误。

错误:找不到字段的设置器。 私人@PrimaryKey String clientLocalId; ^

任何想法都值得赞赏。提前致谢!

【问题讨论】:

【参考方案1】:

这是因为clientLocalId的第二个参数receipt, 删除它或添加另一个 setter 方法, 我建议您在插入数据库之前将收据添加到实体类之外的clientLocalId

【讨论】:

【参考方案2】:

Room 正在寻找一个只接受单个 String 值的 setter。你的方法有两个。

将其更改为以下并使用另一种方法来创建您的串联 id。

public void setClientLocalId(String id) 
    this.clientLocalId = id;

【讨论】:

以上是关于错误:找不到字段的设置器 - 房间的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio:房间:错误:找不到字段的吸气剂

错误:找不到字段的设置器。 - java.util.ArrayList 中的大小 - Room 中的嵌入式 ArrayList 无法编译

Room Kotlin 找不到字段的设置器

@Embeddables 的 @ElementCollection 每个都具有 @Embeddable 字段导致“找不到设置器”异常

找不到字段的设置器 - 将 Kotlin 与 Room 数据库结合使用

Alertmanager 由于“解组错误:第 19 行:在 config.plain 类型中找不到字段匹配器”而失败