我是Google Appengine的新手。在我的应用程序中,数据存储区实体存储一个java.util.Date对象。我想查询数据存储以在特定时间之前返回所有实体。我的代码是:
Date date = new Date();
Query<Event> query = ofy().load().type(Event.class).order("date");
query = query.filter("date <", date);
它在执行时给出错误:
Invalid date/time format: Sat Apr 04 00:40:22 IST 2015
如果此格式无效,我需要使用哪种格式进行查询?
最佳答案
这是一个简单的代码
import java.util.Date;
import com.googlecode.objectify.annotation.Entity;
import com.googlecode.objectify.annotation.Id;
import com.googlecode.objectify.annotation.Index;
@Entity
public class EntityDate {
public EntityDate() {
// Objectify needed
}
@Id
private Long id;
@Index
public Date date;
}
这是进行查询的代码
Date date = new Date();
Objectify ofy = ObjectifyService.ofy();
ObjectifyService.register(EntityDate.class);
EntityDate entityDate = new EntityDate();
entityDate.date = date;
ofy.save().entities(entityDate);
Query<EntityDate> ofyQuery = ofy.load().type(EntityDate.class).order("date");
ofyQuery = ofyQuery.filter("date <", date);
List<EntityDate> list = ofyQuery.list();
Logger.getLogger("EntityDate").info(list.toString());
实体已正确保存
并且查询提供了4个结果
[EntityDate@6780874d, EntityDate@27330551, EntityDate@6a21cf2, EntityDate@7d1a5744]
该类的默认
toString()
有点丑陋,但是它可以正确执行查询。您可以提供
Event
类的源代码以及执行查询的代码的延续吗?