如何使用 Morphia 对排序的搜索查询进行 findAndModify?
How to use Morphia to findAndModify with a sorted search query?
我正在使用 Morphia 1.6.1,这是我的实际代码:
final Query<Entity> query = datastore.createQuery(Entity.class)
.field("status").equal(Status.OPEN)
.order(Sort.ascending("lastUsed"));
final UpdateOperations<Entity> updateOperations = datastore
.createUpdateOperations(Entity.class)
.set("lastUsed", ZonedDateTime.now());
final Entity entity = datastore.findAndModify(query, updateOperations);
唯一的问题是 .order() 是 @Deprecated。所以我需要找到另一种方法来做到这一点。你有什么想法吗?
如果你是1.6.1,你可以愉快地使用那个方法。一旦您移动到 2.x,修改操作的完成方式以及选项的传递方式都会发生一些变化,因此无论如何您都需要做一些返工。 (有一个选项可以继续使用旧版 API,它已被完全弃用,很快就会被删除。可能在 2.4 中。)
2.x 是对 API 的彻底重新思考,旨在成为一组更合理、更可用的接口。到目前为止,人们似乎对此很满意。我强烈建议升级。
我正在使用 Morphia 1.6.1,这是我的实际代码:
final Query<Entity> query = datastore.createQuery(Entity.class)
.field("status").equal(Status.OPEN)
.order(Sort.ascending("lastUsed"));
final UpdateOperations<Entity> updateOperations = datastore
.createUpdateOperations(Entity.class)
.set("lastUsed", ZonedDateTime.now());
final Entity entity = datastore.findAndModify(query, updateOperations);
唯一的问题是 .order() 是 @Deprecated。所以我需要找到另一种方法来做到这一点。你有什么想法吗?
如果你是1.6.1,你可以愉快地使用那个方法。一旦您移动到 2.x,修改操作的完成方式以及选项的传递方式都会发生一些变化,因此无论如何您都需要做一些返工。 (有一个选项可以继续使用旧版 API,它已被完全弃用,很快就会被删除。可能在 2.4 中。)
2.x 是对 API 的彻底重新思考,旨在成为一组更合理、更可用的接口。到目前为止,人们似乎对此很满意。我强烈建议升级。