繁体   English   中英

无法保存数据 Realm Android

[英]Can't save data Realm Android

我是 Realm 数据库的新手。 我想将数据保存到Realm,但即使我输入的数据还不存在也无法保存。

例子:

首先,我输入数据OA作为afdeling,001作为Blok,01作为Group Sample,1作为Pokok ke。 保存成功。

其次,我输入数据OA作为afdeling,001作为Blok,01作为Group Sample,2作为Pokok ke。 保存成功。

第三,我输入数据OB为afdeling,002为Blok,01为Group Sample,2为Pokok ke。 未能保存数据。 Toast 出现“数据已存在”。 即使我输入的数据还不存在。

这是检查数据是否已经存在的代码:

public <E extends RealmModel> boolean isParentIdExist(Class<E> eClass, String value) {
    E data = mRealm.where(eClass).equalTo("parent_id", value).findFirst();
    return data != null;
}

public <E extends RealmModel> boolean isPokokExist(Class<E> eClass, String value) {
    E data = mRealm.where(eClass).equalTo("pokok_ke", value).findFirst();
    return data != null;
}

public <E extends RealmModel> boolean isAfdelingExist(Class<E> eClass, String value) {
    E data = mRealm.where(eClass).equalTo("afdeling", value).findFirst();
    return data != null;
}

public <E extends RealmModel> boolean isBlokExist(Class<E> eClass, String value) {
    E data = mRealm.where(eClass).equalTo("blok", value).findFirst();
    return data != null;
}

public <E extends RealmModel> boolean isGroupSampleExist(Class<E> eClass, String value) {
    E data = mRealm.where(eClass).equalTo("group_sample", value).findFirst();
    return data != null;
}

这是保存数据的代码:

if (isParentIdExist(ModelAddTransaction.class, parent_id)) {
    if (isAfdelingExist(ModelAddTransaction.class, afdeling) && isBlokExist(ModelAddTransaction.class, blok) && isGroupSampleExist(ModelAddTransaction.class, group_sample) && isPokokExist(ModelAddTransaction.class, pokok_ke)) {
        Toast.makeText(AddTransaction.this, "Data is already exist", Toast.LENGTH_LONG).show();
    } else {
        tambahData();
        Toast.makeText(AddTransaction.this, "Data added successfully", Toast.LENGTH_SHORT).show();
        Intent moveViewMaster = new Intent(AddTransaction.this, ViewResult.class);
        startActivity(moveViewMaster);
   }
} else {
      tambahData();
      Toast.makeText(AddTransaction.this, "Data added successfully", Toast.LENGTH_SHORT).show();
      Intent moveViewMaster = new Intent(AddTransaction.this, ViewResult.class);
      startActivity(moveViewMaster);
}

这是 ModelAddTransaction:

class ModelAddTransaction extends RealmObject {
    @PrimaryKey
    private String id;
    private String parent_id;
    private String date;
    private String afdeling;
    private String pokok_ke;
}

设置您的项目并使用此代码插入数据。

 public void saveData() {

    realm.executeTransactionAsync(new Realm.Transaction() {
        @Override
        public void execute(Realm realm) {
            Number id = realm.where(AddToCartRealmModel.class).max("productID");
            int key = (id == null) ? 1 : id.intValue() + 1;
            AddToCartRealmModel addToCartModel = realm.createObject(AddToCartRealmModel.class, key);

            try {
                if (packageModel != null) {
                    realm.beginTransaction();
                    addToCartModel.setPackageName(packageModel.getServiceName());
                    addToCartModel.setProductPrice(packageModel.getPrice());
                    realm.insertOrUpdate(addToCartModel);
                    realm.commitTransaction();
                } else {
                    System.out.println("Error");
                }

            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
            finally {
                if(realm!=null){
                    realm.close();
                }
            }

        }
    });

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM