java - 一种将 appengine 数据存储实体转换为我的对象的方法?

标签 java google-app-engine google-cloud-datastore

使用带有 java 和 jdo 的 google appengine 1.3.0...

在尝试为一对多关系编写 JDO 查询时,我遇到了一个我认为非常聪明的非 JDO 概念。祖先查询。 appengine.api.datastore.Query 接口(interface)允许使用父键确定查询的范围。

不幸的是,查询的结果是带有属性列表的“实体”对象。 api 中是否有一个实用程序可以将这些实体对象之一转换为我的 JDO 对象,甚至是一个简单的 DTO bean(与我的 JDO 对象匹配)?

我用下面的代码进行了一次暴力破解,但不喜欢双重查找。

 PersistenceManager pm;
 DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();  
 List<MyObject> results;

 com.google.appengine.api.datastore.Query query = new Query( "MyObject", KeyFactory.stringToKey( parentId ) );
 query.addFilter("rank", Query.FilterOperator.GREATER_THAN_OR_EQUAL, minRank );
 query.addSort("rank");
 query.setKeysOnly();
 for (Entity anEntity : datastore.prepare(query).asIterable()) {
  results.add( pm.getObjectById( MyObject.class, anEntity.getKey() ) );
 }

最佳答案

您可以使用 org.datanucleus.store.appengine.JDODatastoreBridge.toJDOResult()

关于java - 一种将 appengine 数据存储实体转换为我的对象的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2291028/

相关文章:

google-app-engine - GAE过滤器实体键(Golang)

java - SimpleXML,将具有动态名称的子项转换为列表

java - 在 Java 类中,对于该类的每个对象,我们是否有单独的实例方法副本?

javascript - Node.js 谷歌云平台数据存储日期比较

python - 始终在 Google Cloud 上运行 Python 脚本

google-app-engine - Rx.combineLatest2无法正常工作

python - ndb.toplevel 用于 python 方法与请求处理程序

java - 线程中的异常 "main"java.lang.NoSuchMethodError : java. nio.ByteBuffer.flip()Ljava/nio/ByteBuffer

html 中的 Java 小程序

django - 使用 SQLITE 为 Google App Engine 进行本地 Django 开发?