Операция обновления в Realm
У меня есть таблица форм VisitingCardPOJO
. Я хочу, чтобы обновленная одиночная запись говорила где нет = 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
Я нашел решение как и он работал
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();
}
см. демо для Realm
Ответ 2
Фактически правильный способ сделать это - это
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());
}
}
});
}