我正在使用下面的查询(com.google.cloud.datastore.Query)获取数据存储实体(com.google.cloud.datastore.Entity)的列表。我无法将Datastore实体对象映射到我的自定义Java对象。任何建议都会有很大帮助。谢谢。
Query<Entity> query = Query.newEntityQueryBuilder()
.setNamespace("abc")
.setKind("ca")
.setFilter(StructuredQuery.PropertyFilter.eq("name", "xyz"))
.build();
QueryResults<Entity> tasks = datastore.run(query);
for (QueryResults<Entity> it = tasks; it.hasNext(); ) {
Entity entity = it.next();
User user = entity.toUser();//How to map to my custom Java class
}发布于 2020-06-26 16:52:00
不确定User和数据存储中的实体之间是什么关系,也不确定您到底想要做什么,但是在Datastore Java API中有getPropertyMap方法(reference)。该方法似乎非常适合您的任务,因为它返回Map<String,Value>。
您所需要做的就是在User类中实现新的构造函数,该构造函数将从该Map创建User实例。
代码行应该是这样的:User user = new User(entity.getPropertyMap());
我相信这只是其中一种方式:)
我希望它能有所帮助!
https://stackoverflow.com/questions/62588350
复制相似问题