Can not use ORDER BY in GQL with IN or !=

:-)

On Fri, Apr 29, 2011 at 4:20 PM, Ravi Sharma <[email protected]> wrote:

> Now i am sure its some defect in Google App Engine
> I tried following url for few entities it ran fine and it did updated the
> entities but still indexes are not working properly
>
>
> for (Entity result : pq.asIterable()) {
>                 Map<String, Object> allProp = result.getProperties();
>                 for(Entry<String, Object> oneEntry:allProp.entrySet()){
>                     System.out.println("update :
> "+oneEntry.getKey()+"="+oneEntry.getValue());
>                     result.setProperty(oneEntry.getKey(),
> oneEntry.getValue());
>                 }
>                 result.setProperty("area", 10); //this line just to see
> that my changes are actually saving in datastore and it shows the datastore
> is being updated perfectly
>                                //but still Indexes are not updated
>                 System.out.println("Saving new Entity start");
>                 datastore.put(result);
>                 System.out.println("Saving new Entity Done");
>             }
>
> I hope my query is valid for GAE(Low level datastore APIs)
> select * from A where locationIds *=* <SomeKey> and tfs *in* <Lit of Long
> types> order by lastSaveDate DESC
>
> locationKeys ▲ , tfs ▲ , lastSaveDate ▼
>
>
>
>
> On Fri, Apr 29, 2011 at 10:21 PM, <[email protected]> wrote:
>
>> In order to set indexed props with the low level,
>>
>> entity.setProperty("foo", "bar")
>>
>> Unindexed properties
>>
>> entity.setUnindexedProperty("foo", "baz")
>>
>> I apologize about getting the API wrong in my last message.
>>
>> to get values out of indexed properties, you cast:
>>
>> Date d = (Date) entity.getProperty("somedate")
>>
>> If it is an unindexed property, you have to parse string
>>
>> String mydata = ((Text)
>> entity.getProperty("someunindexedprop")).getValue()
>>
>>
>> On Apr 29, 2011 2:17pm, Ravi Sharma <[email protected]> wrote:
>> > Thanks John
>> > I wished Goole App JDO or Low level API could have done the same thing
>> and wouldnt have to learn one more framework.....it may be easier but still
>> i have to spend some time.
>> > By the way do you know correpsonding API(setIndexedProp()) in Datastore
>> low level API...
>> >
>> > If some third party frmaework can do something then i am sure Low Level
>> datastore api must be capable of doing the same.
>> >
>> > Thanks,
>> > Ravi.
>> >
>> >
>> > On Fri, Apr 29, 2011 at 9:52 PM, John Wheeler [email protected]>
>> wrote:
>> >
>> > Ravi,
>> >
>> >
>> > I think you might need a MapReduce job that calls setIndexedProperty on
>> all your affected entities. Here's mine for you to adapt, but if you don't
>> know MapReduce, you'll have to check it out.
>> >
>> >
>> >
>> >
>> >
>> > public class QuickBulkJob extends AppEngineMapper {
>>
>> >
>> >    private static final Logger log =
>> Logger.getLogger(QuickBulkJob.class.getName());
>> >
>> >
>> >
>> >    @Override
>> >
>> >    public void map(Key key, Entity e, Context context) throws
>> IOException, InterruptedException {
>> >
>> >       setIndexedProp(e, "deactivated");
>> >
>> >       setIndexedProp(e, "feedbackReceived");
>> >
>> >
>> >       setIndexedProp(e, "email");
>> >
>> >
>> >       getAppEngineContext(context).getMutationPool().put(e);
>> >
>> >
>> >
>> >   }
>> >
>> >
>> >
>> >    private static void setIndexedProp(Entity e, String prop) {
>> >
>> >       if (e.hasProperty(prop)) {
>> >          e.setProperty(prop, e.getProperty(prop));
>> >
>> >       }
>> >    }
>> >
>> >
>> > }
>> >
>> >
>> >
>> > Best of luck to you.
>> >
>> >
>> >
>> >
>> >
>> > --
>> >
>> >
>> >
>> > You received this message because you are subscribed to the Google
>> Groups "Google App Engine" group.
>> >
>> > To post to this group, send email to [email protected].
>> >
>> > To unsubscribe from this group, send email to
>> [email protected].
>> >
>> >
>> > For more options, visit this group at
>> http://groups.google.com/group/google-appengine?hl=en.
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > --
>> >
>> > You received this message because you are subscribed to the Google
>> Groups "Google App Engine" group.
>> >
>> > To post to this group, send email to [email protected].
>> >
>> > To unsubscribe from this group, send email to
>> [email protected].
>> >
>> >
>> > For more options, visit this group at
>> http://groups.google.com/group/google-appengine?hl=en.
>> >
>> >
>> >
>> >
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google App Engine" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine?hl=en.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/google-appengine?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to