2016-04-01 5 views
1

filtern Ich bin neu bei Google Appengine. In meiner Anwendung speichern die Datenspeicherentitäten ein org.joda.time.DateTime-Objekt. Ich möchte den Datenspeicher abfragen, um alle Entitäten zwischen einem Bereich von 2 bestimmten DateTime zurückzugeben. Mein Code hierfür lautet:Wie man auf der Basis von JodaTime in objektivieren

@Entity 
@Cache 
@Index 
public class Sample { 

    @Id 
    Long id; // autogen 

    private DateTime dateTime; 
    private int activeCount; 
    private int inactiveCount; 
} 

Ich möchte eine Abfrage wie -

Iterable<Sample> sampleIterable = ofy().load().type(Sample.class) 
        .filter("dateTime <", DateTime.now()) 
        .filter("dateTime >", DateTime.now().minusDays(1)) 
        .iterable(); 

Ist es möglich, die Datetime wie folgt abgefragt werden? Was wäre der richtige Weg, DateTime in objectify abzufragen? Es tut mir leid für den Mangel an Klarheit.

+0

Haben Sie die joda date time Übersetzer mit Ihrer Objektivierung Service/Fabrik registriert? Wenn dies der Fall ist, sollte dies nur funktionieren, wenn die richtigen Indizes existieren (in diesem Fall ist das Feld 'dateTime' mit @Index markiert) – Nick

Antwort

3

Wenn Sie die Joda-Übersetzer mit Objectify registrieren, können Sie DateTime sowohl als Feld- als auch als Filterklausel verwenden. Sie können DateTime verwenden, um auch gegen reguläre Date Eigenschaften zu filtern.

Dies ist nicht standardmäßig aktiviert, da jeder Joda-Zeit als Abhängigkeit enthalten müsste.

Verwandte Themen