我想知道是否有一种正确的方法来检索一个对象,因为它在Realm for Android中具有主键.我知道方法objectForPrimaryKey确实存在于Swift中,但在Realm for Android中似乎没有这样的对应物.我真的认为做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();