我想知道在Realm for Android中是否有适当的方法来获取对象的主键。我知道objectForPrimaryKey
方法确实存在于Swift中,但是在Android的Realm中似乎没有这样的对应方法。我真的认为realm.where(EventInfo.class).equalTo("id", eventInfo.id).findFirst();
看起来很浪费(至少不友好)。我缺少某种方法吗?我当前正在使用Realm 1.0.1
最佳答案
这就是为什么我有一个这样的Realm存储库(我写过)的原因
public class CalendarEventRepositoryImpl
extends LongRealmRepositoryImpl<CalendarEvent>
implements CalendarEventRepository {
public CalendarEventRepositoryImpl() {
super(CalendarEvent.class);
}
@Override
public Long getId(CalendarEvent calendarEvent) {
return calendarEvent.getId();
}
public void setId(CalendarEvent calendarEvent, Long id) {
calendarEvent.setId(id);
}
public String getIdFieldName() {
return CalendarEventFields.ID;
}
}
我继承了一种称为
findOne(realm, id);
的方法,例如CalendarEvent event = calendarEventRepository.findOne(realm, id);
但是是的,默认情况下,它是
realm.where(CalendarEvent.class).equalTo("id", id).findFirst();
关于java - 通过Android Java中的主键获取Realm对象的正确方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38109905/