如何在Morphia中实现带排序查询的findAndModify,替换已弃用的order方法
解决方案
Morphia 1.6.1 版本中order()方法已正式标记为废弃,统一使用sort()方法作为替代实现排序逻辑,两者功能完全等效,参数规则也保持兼容。
调整后的代码示例
final Query<Entity> query = datastore.createQuery(Entity.class) .field("status").equal(Status.OPEN) // 替换原order()方法为sort(),可直接传入原有的Sort参数 .sort(Sort.ascending("lastUsed")); final UpdateOperations<Entity> updateOperations = datastore .createUpdateOperations(Entity.class) .set("lastUsed", ZonedDateTime.now()); final Entity entity = datastore.findAndModify(query, updateOperations);
扩展用法说明
- 多字段排序场景下,直接向
sort()方法传入多个Sort对象即可,示例:sort(Sort.ascending("lastUsed"), Sort.descending("createTime")) - 也支持字符串形式的排序规则,和旧版
order()的字符串参数用法完全一致:sort("-lastUsed")代表按lastUsed字段降序,sort("lastUsed")代表按lastUsed字段升序
内容的提问来源于stack exchange,提问作者Patrick Rode
相关产品推荐
相关产品推荐

