Java 域findAllSorted按字段的字段排序
另一个关于领域的问题 我有这个结构 类A有一个具有字符串名称的类B 我想按名为“xy”的B对A类列表进行排序 所以这就是我尝试的方式,但不起作用Java 域findAllSorted按字段的字段排序,java,android,realm,Java,Android,Realm,另一个关于领域的问题 我有这个结构 类A有一个具有字符串名称的类B 我想按名为“xy”的B对A类列表进行排序 所以这就是我尝试的方式,但不起作用 realm.where(A.class).findAllSorted("b.name",true); 这表示没有字段B.name 你知道我该怎么做吗 谢谢。领域还不支持按链接排序。这里有一个追踪系统 以下是领域支持该功能之前的一个解决方法: class A extends RealmObject { private B b; // S
realm.where(A.class).findAllSorted("b.name",true);
这表示没有字段B.name
你知道我该怎么做吗
谢谢。领域还不支持按链接排序。这里有一个追踪系统 以下是领域支持该功能之前的一个解决方法:
class A extends RealmObject {
private B b;
// Storing the b.name as a field of A when calling setB(). But
// remember you cannot do it by adding logic to setB() since Realm's
// proxy will override the setters. You can add a static method to
// achieve that.
private String bName;
// getters and setters
// This needs to be called in a transaction.
public static void setBObj(A a, B b) {
a.setB(b);
a.setBName(b.getName);
}
}
然后您可以按bName对结果进行排序,如:
realm.where(A.class).findAllSorted(“bName”,true);
我同意@beeender的观点,您也可以使用wrapper以java风格完成这项工作:
1.为具有的.class定义包装器
public class AWrapper {
public AWrapper(A a){
this.a = a;
}
private A a;
}
二,。转换包装器中的所有RealmObject。有人这样想:
List<AWrapper> wrapped = new ArrayList<>();
for(A a : realmSet){
wrapped.add(new AWrapper(a))
}
List wrapped=new ArrayList();
对于(A:realmSet){
包装。添加(新AWrapper(a))
}
private class OwnComparator implements Comparator<AWrapper>{
@Override
int compare(AWrapper o1, AWrapper o2) {
return o1.someField.compareTo(o2.someField)
}
}
私有类OwnComparator实现Comparator{
@凌驾
int比较(AWrapper o1、AWrapper o2){
返回o1.someField.compareTo(o2.someField)
}
}
Collections.sort(wrapped,new ownParator())
领域还不支持按链接排序。跟踪此问题时存在一个未解决的问题。