如何在Google App engine(Java)中实现祖先或任何其他方式来检索最近的更新?我只能使用单个实体。。,
及如何在Google App engine(Java)中实现祖先或任何其他方式来检索最近的更新?我只能使用单个实体。。,,java,google-app-engine,Java,Google App Engine,及 这些类型的查询用于从数据存储检索数据,但我无法获取最近的更新。对于范围和偏移量的数据存储查询,可以使用 Employees employee = ofy().load().type(Employees.class).id("123").get(); 您可以指定从需要获取的位置开始的偏移量,限制是要获取的结果数听起来您在寻找最终一致性的解决方案。要在查询上获得强一致性,需要使用祖先查询,这需要具有祖先密钥 了解 就objectify而言,fetchbyid始终是强一致的。如果采用以下方法,查
这些类型的查询用于从数据存储检索数据,但我无法获取最近的更新。对于范围和偏移量的数据存储查询,可以使用
Employees employee = ofy().load().type(Employees.class).id("123").get();
您可以指定从需要获取的位置开始的偏移量,限制是要获取的结果数听起来您在寻找最终一致性的解决方案。要在查询上获得强一致性,需要使用祖先查询,这需要具有祖先密钥 了解 就objectify而言,fetchbyid始终是强一致的。如果采用以下方法,查询将非常一致:
Query q = new Query("Employees");
q.addFilter("is_active", FilterOperator.EQUAL, isActive);
q.addSort("first_name", SortDirection.ASCENDING);
PreparedQuery pq = datastore.prepare(q);
List<Employees> result = pq.asList(FetchOptions.Builder.withOffset(5).limit(5));
请注意,在进行最终一致性查询(即带有objectify的非祖先查询)时,objectify返回的实体内容将是正确的,即一致且最新的,但返回的实体将是最终一致性查询的结果
为了实现您的目标,您需要在某个轴上划分员工,并将其用作祖先键。您将面临的主要问题是,实体组上每秒写入一次的限制
父级也不需要实体,只需要一个键。它不需要作为一个条目存在于数据存储中。如果我是对的,那么您需要数据存储中最近修改的实体?是的…,如果am更新任何字段,有时它只给出我在修改前所做的最后一次更新…,而不是最近的更新…,是否要求您只使用数据存储的低级Api,而不是JDO?只使用低级Api。。,不是任何JDO或JPA
Query q = new Query("Employees");
q.addFilter("is_active", FilterOperator.EQUAL, isActive);
q.addSort("first_name", SortDirection.ASCENDING);
PreparedQuery pq = datastore.prepare(q);
List<Employees> result = pq.asList(FetchOptions.Builder.withOffset(5).limit(5));
List<Employee> employees = ofy()
.load()
.type(Employee.class)
.ancestor(parentKey)
.filter("field", value)
.list()