You should know that only entity path(key) is unique.

ID is unique in 2 case:

1. Root entities of one kind.
2. Non-root entities in one entity group of one kind.

So if you have several entity groups, they would have entities with the same
ID.

----------
keakon


On Fri, Nov 19, 2010 at 11:54 AM, Robert Kluin <[email protected]>wrote:

> Well, if the ids for entities sharing the same parent were not unique
> for a particular kind, it would be a very serious problem.  ;)
> Check out some of the articles for more details on how the datastore works:
>  http://code.google.com/appengine/articles/datastore/overview.html
>
> You might want to include the parent entity's id as well.  If you know
> the parent type and id, and the child's type and id you can rebuild
> the key for an entity.
>
> Check KeyFactory for more details.
>
> http://code.google.com/appengine/docs/java/datastore/creatinggettinganddeletingdata.html#Getting_an_Object_By_Key
>
> http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/KeyFactory.html
>
>
>
>
>
> Robert
>
>
>
>
> On Thu, Nov 18, 2010 at 22:44, Riley Lark <[email protected]> wrote:
> > And 3: can I assume that ids will be unique within an entity group and
> Kind,
> > or are there no guarantees at all?
> >
> > On Thu, Nov 18, 2010 at 9:23 PM, Riley <[email protected]> wrote:
> >>
> >> I have a datastore full of entities.  They are all in an entity group
> with
> >> many other entities - maybe 1000 per group.  I am using keys and parent
> keys
> >> to keep them organized:
> >> @PersistenceCapable(detachable = "true")
> >> public class Assessment
> >> {
> >> @SuppressWarnings("unused")
> >> @Persistent
> >> @Extension(vendorName = "datanucleus", key = "gae.parent-pk", value =
> >> "true")
> >> private Key parentKey;
> >> @PrimaryKey
> >> @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
> >> private Key key;
> >> ...
> >>
> >> However, to communicate with the client, I've been using key.getId() to
> >> get a numeric identifier.  I've been assuming that each key would have a
> >> different id, but have recently noticed that this is a bad assumption!
>  Many
> >> of my entities share an ID!  Unfortunately, I noticed this just a couple
> of
> >> days after opening my app to beta testers, so I have real data on the
> line.
> >>
> >> 1: How can I ensure that every entity gets a unique id?  Do I have to
> >> implement my own id generator?
> >> 2: Now that I have many entities with the same id (but different keys)
> is
> >> there any way to efficiently transmit something that uniquely identifies
> >> each entity?
> >> Thanks for any help or advice!
> >>
> >> --
> >> 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]<google-appengine%[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]<google-appengine%[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]<google-appengine%[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