我正在使用Hibernate OGM(5.2.0.Alpha1)和MongoDB(3.4)
我正在执行
字符串查询=“db.student.find({'collegeName':'VNSGU'})”
用于分页使用JPA setFirstResult()和setMaxResult(),它工作正常,但在执行聚合查询时
字符串查询=“db.student.aggregate([{'$ match':{'collegeName':'VNSGU'}}])”;
列表listOfStudent = entityManager.createNativeQuery(query,Student.class).setFirstResult(startPosition).setMaxResults(noOfRecords).getResultList();
执行:
在数据库表中,我总共有10个大学名称的记录 'VNSGU',
当startPosition = 0且noOfRecords = 5时,它将打开正确的输出 首先执行并返回5条记录,
当第二次尝试执行查询时,startPosition = 5和 noOfRecords = 5,它将返回空列表,因为第二次执行它 将有5个没有记录,这是第一次执行的输出(我检查过 它通过执行查询而不使用setFirstResult()和setMaxResult()并返回 总共5条记录)。作为Per,我理解早期执行的输出会 成为下一次执行的输入,它将返回之前的结果 结果
但实际上发生了什么以及解决方案是什么...... ??
答案 0 :(得分:0)
作为Per,我理解先前执行的输出将成为下一次执行的输入,它将返回早期结果的结果。
我不认为这是问题所在。更有可能的是,Hibernate OGM缓存了第一个查询的结果,并且它第二次返回它。这似乎与另一个问题有关:https://hibernate.atlassian.net/browse/OGM-1375
我会在进一步调查此问题后立即更新此答案。