通过Android Java中的主键获取Realm对象的正确方法 [英] Proper way to get Realm object by its primary key in Android Java
问题描述
我想知道是否有一种正确的方法来检索一个对象,因为它在Realm for Android中具有主键。我知道方法 objectForPrimaryKey
确实存在于Swift中,但在Realm for Android中似乎没有这样的对应物。我真的认为做 realm.where(EventInfo.class).equalTo(id,eventInfo.id).findFirst();
看起来很浪费(at至少它不是手腕友好的)。我错过了一些方法吗?我目前正在使用Realm 1.0.1
I wonder if there's a proper way to retrieve an object given its primary key in Realm for Android. I know the method objectForPrimaryKey
does exists in Swift but there seems to be no such counterpart in Realm for Android. I really think that doing realm.where(EventInfo.class).equalTo("id", eventInfo.id).findFirst();
looks like a lot of waste (at least it is not wrist-friendly). Am I missing some method? I'm Currently using Realm 1.0.1
推荐答案
这就是为什么我有像这样的Realm存储库(我写的)
This is why I have a Realm repository like this one (which I wrote)
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);
like
and I inherit a method called findOne(realm, id);
like
CalendarEvent event = calendarEventRepository.findOne(realm, id);
但是,默认情况下,它是 realm.where(CalendarEvent.class) .equalTo(id,id).findFirst();
But yes, by default, it's realm.where(CalendarEvent.class).equalTo("id", id).findFirst();
这篇关于通过Android Java中的主键获取Realm对象的正确方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!