Tag: google cloud datastore

Google数据存储区 – 更新实体时出现问题

我正在消除我的谷歌应用程序引擎/数据存储技能……并且陷入非常简单的困境。 根据GAE文档中的示例,我尝试更新实体,如下所示: // persistence and business logic PersistenceManager pm = PMF.get().getPersistenceManager(); // get it NickName n = pm.getObjectById(NickName.class, nicknameId); // update fields n.givenName = “new name”; n.nickName = “new nickname”; n.timeStamp = new Date(); // close manager to persist changes pm.close(); 这不起作用(因为更改不会持久,但没有错误或其他任何东西)! 与此同时,我发现如果我创建一个具有相同ID的新实体,则更改将保持不变: // persistence and business logic PersistenceManager pm = PMF.get().getPersistenceManager(); NickName n = […]

为什么我得到只有祖先查询被允许在事务内部错误

boolean r = ofy().transact(new Work() { @Override public Boolean run() { Visit visit = ofy().load().type(Visit.class) .filter(Visit.USER_ID, userID) .filter(Visit.VENUE_ID, venueID).first().get(); if (visit == null) return false; visit.setLastRequestDate(new Date(timestamp)); ofy().save().entity(visit).now(); return true; } }); 我明白了 java.lang.IllegalArgumentException:在事务内只允许祖先查询。 对于get()调用的行。 为什么? 我只是在这次交易中查询Visit实体。 我在一个事务中这样做,因为我希望所有这些都作为primefaces操作执行。

如何在GAEJ中建模实体关系?

我想知道 – 一个例子非常感谢 – 如何在Google App Engine for Java中建立关系模型? – 一对多 – 许多人 我在网上搜索过,我没有发现任何关于Java的所有指南和教程都是关于Python的。 我从这篇文章中了解到,在Python中,关系是使用ReferenceProperty建模的。 但是,我在Javadoc引用中没有发现这个类。 此外,在本文中他们讨论了以下内容: 目前Java用户的工具短缺,主要是由于App Engine的Java平台相对较新。 然而,那是在2009年写的。 最后,我最终使用每个实体的祖先路径建模关系。 我发现这种方法存在问题并限制了应用程序的可伸缩性。 你能指导我到Python的ReferenceProperty类的等效Java类吗? 或者,您能否举例说明如何使用Java数据存储区低级API在AppEngine中建模关系。 在此先感谢您的帮助。

设置与类名不同的实体种类名称

有没有办法如何设置与我的Google App Engine中使用的类名不同的种类名称? 我正在使用Java和JDO来访问数据存储区。 关于Python中的类似问题存在疑问。 好像回答了。 设置与模型名称无关的种类名称(App Engine数据存储区)

无法使用GAE / J DataNucleus插件版本2.1.2获取新创建的JDO持久实体的ID

我的问题 我正在使用新的1.7.5 GAE / J SDK将我的应用程序从版本1.x移植到GAE / J的DataNucleus插件的2.0版本。 这将我的JDO版本从2.3更改为3.0.1。 我的持久化实体类具有类型为编码字符串的主键,以及对该对象的数字ID的只读访问权限。 每个实例都是其实体组的唯一成员(子级和父级仅通过数字ID链接)。 以前,我已经能够创建并持久化新的MyEntity实例,然后立即访问其数字ID以存储在父MyEntity实例的子ID列表中。 现在我发现新实例的数字ID在持久化后不会立即可用 – 即使它是生成并存储的并且稍后可用。 我的问题 在创建对象和持久性之后,我有什么办法可以立即恢复对数字ID的访问吗? “jdoconfig.xml”配置提取 […] 持久化实体类代码提取 @PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = “true”) public class MyEntity implements Serializable { private static final long serialVersionUID = 1L; // No setter for this read-only data member @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName=”datanucleus”, key=”gae.encoded-pk”, value=”true”) private […]

GAE w / Objectify – 你能查询HashMap吗?

在GAE中,当使用Objectify时,你能查询一个HashMap吗? 如果是这样你会怎么写呢? ofy().load().type(MyClass.class).filter(“hashMapfieldName”, “keyQueryinggFor”).list(); 似乎在hashMapfieldName是HashMap地方hashMapfieldName 。 我期待找到hashMapfieldName包含某个键的实体。

Google App Engine – 删除JPQL查询和级联

我注意到使用下面的JPQL查询时不会删除PersistentUser的子代。 但是,如果我执行entityManager.remove(object) ,则会删除子项。 这是预期的吗? 为什么下面的JPQL查询也没有执行级联删除? @OneToMany(mappedBy = “persistentUser”, cascade = CascadeType.ALL) private Collection persistentLogins; … @Override @Transactional public final void removeUserTokens(final String username) { final Query query = entityManager.createQuery( “DELETE FROM PersistentUser p WHERE username = :username”); query.setParameter(“username”, username); query.executeUpdate(); }

为什么电子邮件,用户名,邮政编码等作为GAE数据存储区中的实体

我已经看到在GAE数据存储区中有这么多实体,最后是字符串,至少显然。 GAE Java数据存储实体列表 我想知道其中的原因是什么? 索引? 语义搜索?

Appengine Search API与数据存储区

我正在尝试决定是否应该将App-engine Search API或Datastore用于App-engine Connected Android Project。 谷歌文档的唯一区别是 …索引搜索可以找到不超过10,000个匹配的文档。 App Engine数据存储可能更适合需要检索非常大的结果集的应用程序。 鉴于我已经非常熟悉数据存储区:假设我不需要10,000个结果,有人会帮助我吗? 使用Search API与使用数据存储区查询是否有任何好处(根据上面的引用,使用其中一个似乎是明智的)? 在我的情况下,最终用户必须能够搜索,更新现有条目并创建新实体。 例如,如果我的应用是书店,则用户必须能够添加新书,向现有书籍添加评论,搜索特定书籍。 我的数据结构使得内容将由最终用户提供。 文档与数据存储实体:哪个更新更便宜? $$等 它们可以相互补充:数据存储和搜索API吗? 有什么好处? 为什么有人会考虑将两者配对? 捕获/成本是多少?

如何防止在URL中显示JSESSIONID

我使用Google Datastore在servlet中创建了一个登录页面,它运行正常。 但有时它会在URL中显示JSESSIONID。 如何阻止JSESSIONID通过URL发送? 为什么它通过URL而不是请求消息?