Java EBean保留in子句中的排序顺序

Java EBean保留in子句中的排序顺序,java,ebean,Java,Ebean,我有一个数据库,里面有我用Lucene索引的文档——不是所有与搜索相关的字段,所以实际上只是其中的一个子集被索引了。搜索会给我一个按分数排序的文档ID列表。我用这个列表来找到埃宾 PagingList<MyDoc> pagingList = Ebean.find(MyDoc.class) .where().in("id", idList) .findPagingList(pageSize); PagingList PagingList=Ebean.f

我有一个数据库,里面有我用Lucene索引的文档——不是所有与搜索相关的字段,所以实际上只是其中的一个子集被索引了。搜索会给我一个按分数排序的文档ID列表。我用这个列表来找到埃宾

PagingList<MyDoc> pagingList = Ebean.find(MyDoc.class)
        .where().in("id", idList)
        .findPagingList(pageSize);
PagingList PagingList=Ebean.find(MyDoc.class)
.where().in(“id”,idList)
.findPagingList(页面大小);
很明显,我想保留排序顺序。据我所知,EBean中没有内置的方法来保持顺序,我也找不到排序函数,让我实现一个比较器

有没有办法做到这一点

更新

正如Rob所说,我正在使用一个列表并自己进行排序

PagingList<MyDoc> pagingList = Metadata.find(MyDoc.class)
    .where().in("id", idList).findPagingList(PAGE_SIZE);
Page<MyDoc> pg = pagingList.getPage(page);
List<MyDoc> results = pg.getList();

Collections.sort(results, new Comparator<MyDoc>() {
    @Override
    public int compare(MyDoc o1, MyDoc o2) {
        if (idList.indexOf(o1.id) > idList.indexOf(o2.id)) {
            return 1;
        }
        else if (idList.indexOf(o1.id) < idList.indexOf(o2.id)) {
            return -1;
        }
        else {
            return 0;
        }
    }
});
PagingList PagingList=Metadata.find(MyDoc.class)
.where().in(“id”,idList).findPagingList(页面大小);
第pg页=pagingList.getPage(第页);
列表结果=pg.getList();
Collections.sort(results,newcomparator(){
@凌驾
公共整数比较(MyDoc o1,MyDoc o2){
if(idList.indexOf(o1.id)>idList.indexOf(o2.id)){
返回1;
}
else if(idList.indexOf(o1.id)
使用findList()而不是findPagingList()-这将返回一个列表。。。然后在列表中使用您自己的比较器对其进行排序。

您使用哪种DB引擎?H2目前正在生产中,但将是一个postgres。好的。请注意,应该将findList()与setMaxRows()和setFirstRow()一起使用,而不是与findPagingList()一起使用。findPagingList()将在v4.0.1中被弃用。