Sorting 按引用排序<&燃气轮机;属性-对象化查询
在一次数据操作中,我突然想到要按Ref字段对查询结果进行排序 假设我有以下数据对象Sorting 按引用排序<&燃气轮机;属性-对象化查询,sorting,objectify,Sorting,Objectify,在一次数据操作中,我突然想到要按Ref字段对查询结果进行排序 假设我有以下数据对象 EmployeeDO{Long id,String name,Ref company} CompanyDO{Long id,String name} 现在我想查询按公司名称排列的员工 我试过这个问题 Query<EmployeeDO> query = ofy().load().type(EmployeeDO.class).order("refCompany"); Query Query=ofy().
Query<EmployeeDO> query = ofy().load().type(EmployeeDO.class).order("refCompany");
Query Query=ofy().load().type(EmployeeDO.class).order(“refCompany”);
显然,这并没有用公司名称对结果进行排序,但这也成功地编译了
请建议是否可以通过这种方式进行排序,或者尝试其他解决方法 如果您使用@Index refCompany,则可以按refCompany排序,但它不会按公司名称排序-它将按键进行索引(如果您不使用@Parent,则只需id顺序) 有两种“常规”选择:
- 将数据加载到ram中并在那里进行排序。这就是RDBMS在内部所做的。GAE不支持连接的说法并不完全正确;只是你是查询计划员
- 对公司名称进行非规范化和预索引。将
放入EmployeeDO。如果您发现神奇的排序执行得很差(例如,员工太多),那么您将使用RDBMS执行此操作@Index companyName