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

2024-04-15

使用 google appengine 1.3.0 w/ java 和 jdo...

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

不幸的是,查询的结果是带有属性列表的“实体”对象。 api 中是否有一个 util 可以将这些实体对象之一转换为我的 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()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 appengine 数据存储实体转换为我的对象的方法? 的相关文章

随机推荐