Update statement in Realm

依然范特西╮ 提交于 2019-12-21 03:52:10

问题


I have VisitingCardPOJO form table. I want update single entry say where no=3

VisitingCardPOJO.java

public class VisitingCardPOJO extends RealmObject {

   @PrimaryKey private int no;
    private String name;
    private String address;

    public int getNo() {
        return no;
    }

    public void setNo(int no) {
        this.no = no;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

回答1:


I found the solution as and It worked

 public void updateNewCard(Realm realm, VisitingCardPOJO card) {
        realm.beginTransaction();
        VisitingCardPOJO toEdit = realm.where(VisitingCardPOJO.class)
                .equalTo("no", card.getNo()).findFirst();
        toEdit.setName(card.getName());
        toEdit.setAddress(card.getAddress());
        realm.commitTransaction();
    }

see demo for Realm




回答2:


The actual right way to do it is this

public void updateNewCard(Realm realm, VisitingCardPOJO card) {
    final int no = card.getNo();
    realm.executeTransaction(new Realm.Transaction() {
        @Override
        public void execute(Realm realm) {
            VisitingCardPOJO toEdit = realm.where(VisitingCardPOJO.class)
                .equalTo("no", no).findFirst();
            if(toEdit != null) {
                toEdit.setName(card.getName());
                toEdit.setAddress(card.getAddress());
            }
        }
    });
}


来源:https://stackoverflow.com/questions/30933229/update-statement-in-realm

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!