Tag: objectify

Objectify查询filter,如“name contains”

使用Objectify的Google App Engine查询数据存储区,我想使用类似的查询 objectifyService.query(Entity.class).filter(“name contains”, a); 这将返回一个列表,其中包含名称中包含“a”字符的所有实体。 但是包含运算符不存在。 有一个简单的方法吗?

objectify-appengine – 嵌入式类 – 不是受支持的属性类型

我正在谷歌应用引擎上尝试objectify(版本2.2.3)嵌入式类示例(wiki)。 我收到此错误: java.lang.IllegalArgumentException:one:com.mypkg.LevelOne不是受支持的属性类型。 在com.google.appengine.api.datastore.DataTypeUtils.checkSupportedSingleValue(DataTypeUtils.java:184) 我的代码与Wiki中的代码相同。 控制器中的部分: EntityWithEmbedded ent = new EntityWithEmbedded(); ent.one = new LevelOne(); ent.one.foo =“Foo Value”; ent.one.two = new LevelTwo(); ent.one.two.bar =“条形值”; EntityWithEmbedded类: import javax.jdo.annotations.Embedded; import javax.persistence.Entity; import javax.persistence.Id; @实体 公共类EntityWithEmbedded { @Id public Long id; @Embedded public LevelOne one; // getter&setters here } class级一级: import javax.persistence.Embedded; 公共课LevelOne { public String foo; public […]

用Objectify查询Geopt

我最难用Objectify查询GeoPt字段。 我确定有关于GeoPt字段的@Index注释。 但是,以下声明似乎不起作用 ofy().load() .type(GeoStat.class) .filter(“geoPt.latitude >=”, neLat) .limit(10); 在Objectify中查询GeoPt字段是否可行?

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

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操作执行。

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

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

为什么现在()? (物化)

为什么我想要异步加载Objectify实体? 异步加载实际上意味着什么? 根据Objectify关于加载的文档 ,以下加载实体的方式是异步的: // Simple key fetch, always asynchronous Result th = ofy().load().key(thingKey); 如果我想要一个加载同步执行,那么我应该这样做: Thing th = ofy().load().key(thingKey).now(); // added .now() 对我而言,异步意味着该操作将在稍后的某个未指定时间发生。 对于保存,异步是有意义的,因为数据存储区操作可能需要一些时间来自行完成而不会阻塞应用程序代码。 但是加载时,异步意味着负载会在另一个时间发生吗? 如何在Java中实现这一点? 我认为当代码行Result th = ofy().load().key(thingKey);时,必须更新变量Result th Result th = ofy().load().key(thingKey); 完成执行。 作为一个新手,我需要花费很长时间来解决这个问题(例如,参见Objectify错误“你无法在JUnit中为具有null @Id的对象创建一个键” )。 所以我有几个问题: 1]为什么我想要异步加载Objectify实体? 2]异步加载实际意味着什么? 3] now()用于加载和now()用于保存之间的概念链接是什么? 同步负载( 源 ) Thing th = ofy().load().key(thingKey).now(); 同步保存( 源 ) ofy().save().entity(thing1).now(); […]

客体化关系:一对多,我能否有效地做到这一点?

我对Objectify很新,我有一个快速的问题,想要做最好的事情: 假设我有一个允许人们发送和接收消息的应用程序(为简单起见,请考虑发送电子邮件)。 当我的应用加载时,我不想从每个发送消息给给定用户的联系人加载每条消息。 那将是一种浪费。 相反,我想加载用户有消息的所有联系人(读取或未读取),以便我可以在我的应用程序上显示联系人列表,当用户点击给定联系人时我想加载所有来自该联系人的消息显示给用户。 如果不加载帐户的所有消息,我找不到这样做的好方法。 我在多对一关系中阅读了Objectify wiki,我仍然想不出一个不是非常低效的好方法。 这似乎是客观化网站推荐的方式,我必须为给定用户加载所有消息,然后解析它们以获得唯一的联系人。 我正在尝试使用尽可能少的App Engine读取和写入,并尽可能地尝试使用Smalls而不是Reads(运行我的应用程序的总体成本是我的一个大问题,而我正在制作这个) 。 在Objectify,我该怎么做?

即使没有指定@Load,Objectify也会在Ref 后面加载对象

我有一个引用用户对象的帐户对象。 @Cache @Entity public final class Account { @Id Long id; @Index private Ref user; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public User getUser() { return user.get(); } public void setUser(User user) { this.user = Ref.create(user); } } 我按照此处的建议隐藏了参考资料: http : //code.google.com/p/objectify-appengine/wiki/Entities – 请注意参考资料没有 @Load注释。 […]

您何时在Objectify中注册GAE课程?

所以这可能是一个愚蠢的问题,但你什么时候注册课程: ObjectifyService.register( User.class ); 目前,我在类似接口的类的构造函数中这样做,我在其他类中使用它来简化数据存储的使用,特别是我的应用程序。 但是,我收到此错误: 尝试两次注册“用户” 所以,我想我的问题是你在Objectify中注册课程的频率和具体时间是多少? 谢谢! PS这是我的全class: import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.Iterator; import javax.crypto.BadPaddingException; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.persistence.Id; import com.googlecode.objectify.Objectify; import com.googlecode.objectify.ObjectifyService; import com.googlecode.objectify.annotation.Indexed; import com.googlecode.objectify.annotation.Unindexed; public class UsersService { Objectify ojy; public UsersService(){ ObjectifyService.register( User.class ); ojy = ObjectifyService.begin(); } public void regUser(String email, String password, String firstName, […]

使用带自动缩放的java的GAE上的Cron作业失败

我正在尝试使用cron job每天执行一次工作。 我正在使用自动缩放。 使用cron job我每天都会发送一次电子邮件。 我有两个条件: 每当我每天设置一次时间,例如every day 18:00然后cron作业成功运行,但它只执行3,4行CronJob实现类。 在记录器中我只得到4行执行如下: – 每当我every 2 minutes或every 5 minutes设置一次时间,然后cron作业成功运行并且cron作业实现类成功执行意味着它成功发送电子邮件。 为什么第一个条件不发送电子邮件? 是否有应用程序在那个时候闲置,这就是为什么它没有执行? 有帮助吗? Cron.xml: – /slick_erp/cronCustomerService Implemented for due services of customer. every day 11:30 web.xml中: – CustomerServiceCronJobImpl com.slicktechnologies.server.cronjobimpl.CustomerServiceCronJobImpl CustomerServiceCronJobImpl /slick_erp/cronCustomerService 我的cronjob实现类: – public class CustomerServiceCronJobImpl extends HttpServlet { /** * */ private static final long serialVersionUID = -6268357776825855510L; […]