我想知道在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/

10-10 07:31