我看到一些帖子说使用Long id与另一个键(作为索引和唯一),如果我理解正确,这将基于另一个字段(不是基于id)或更多,我的班级更新:
@Entity(nameInDb = "tbl_company")
public class Company {
@Id(autoincrement = true)
private Long company_id;
@Index(unique = true)
@SerializedName(value = "oid")
public String oid;
给我这个例外 - > UNIQUE约束失败:tbl_company.OID
当然我理解为什么会发生这种情况,但怀疑的是为什么人们会说这应该可以用这个配置来更新索引/唯一的行。
@Entity(nameInDb = "tbl_company",indexes = {
@Index(value = "oid", unique = true)} )
public class Company {
@Id(autoincrement = true)
private Long company_id;
@SerializedName(value = "oid")
public String oid;
错误:Cannot update entity without key - was it inserted before?
我也理解,我应该设置id,但信息来自没有sqlite ID的服务器,只有MongoDB oid:
.update
.update
.updateInTx
.insertOrReplace
.insertOrReplaceInTx
我知道我可以查询oid以检查它是否存在,但我试图立即对许多对象使用updateInTx
。使用查询方法我应该迭代并检查每一个,获取id,在新的上设置id而不是更新,这可能会影响性能(有时服务器可以返回至少500个项目进行迭代)
有没有一种方法可以使用另一个字段而不是ID或我做错更新行? (我不关心id,只是oid很重要,必须是唯一的并且可以更新)