If you store an Entity in the Google Datastore, and you want to retrieve it by the auto-generated "Long" ID, none of the things you think would work...work.
SELECT * FROM mytype WHERE id = 12345, and so on...fail.
Note that the auto-generated column where the ID is put, is actually shown as "ID/Name" (but using that in any form doesn't help either).
You have to work with a Key (the below code assumes you have already created a new Query instance):
Note that I make sure I convert myVal to a Long (these two lines of code are actually in a "match", which via map iteration checks if the "v" in ( k, v ) is a Double, so I'm guarded against the exception you may have balked at), because when I send over the JSON from the UI, it appears as a Double on the server side, which won't work (and I tried everything short of getting into custom serialization).
Anyway, I banged around a couple of hours on this one, maybe it saves somebody some grief.
As always, thanks for visiting.
No comments:
Post a Comment