public final class Key implements Serializable, Comparable<Key>
The primary key for a datastore entity.
A datastore GUID. A Key instance uniquely identifies an entity across all apps, and includes
all information necessary to fetch the entity from the datastore with
DatastoreService.get(Key)
.
You can create Key
objects directly by using KeyFactory#createKey or #getChild.
You can also retrieve the Key
automatically created when you create a new Entity, or serialize Key
objects, or use KeyFactory to convert them to and from
websafe String values.
See Also: KeyFactory
Methods
compareTo(Key other)
public int compareTo(Key other)
Compares two Key
objects. The algorithm proceeds as follows: Turn each Key
into
an iterator where the first element returned is the top-most ancestor, the next element is the
child of the previous element, and so on. The last element will be the Key
we started
with. Once we have assembled these two iterators (one for 'this' and one for the Key
we're comparing to), consume them in parallel, comparing the next element from each iterator.
If at any point the comparison of these two elements yields a non-zero result, return that as
the result of the overall comparison. If we exhaust the iterator built from 'this' before we
exhaust the iterator built from the other Key
, we return less than. An example:
app1.type1.4.app1.type2.9 < app1.type1.4.app1.type2.9.app1.type3.2
If we exhaust the iterator built from the other Key
before we exhaust the iterator
built from 'this', we return greater than. An example:
app1.type1.4.app1.type2.9.app1.type3.2 > app1.type1.4.app1.type2.9
The relationship between individual Key Keys
is performed by comparing app followed
by kind followed by id. If both keys are assigned names rather than ids, compares names instead
of ids. If neither key has an id or a name we return an arbitrary but consistent result.
Assuming all other components are equal, all ids are less than all names.
Parameter | |
---|---|
Name | Description |
other |
Key |
Returns | |
---|---|
Type | Description |
int |
equals(@Nullable Object object)
public boolean equals(@Nullable Object object)
Compares two Key
objects by comparing ids, kinds, parent and appIdNamespace. If both
keys are assigned names rather than ids, compares names instead of ids. If neither key has an
id or a name, the keys are only equal if they reference the same object.
Parameter | |
---|---|
Name | Description |
object |
@org.checkerframework.checker.nullness.qual.Nullable java.lang.Object |
Returns | |
---|---|
Type | Description |
boolean |
getAppId()
public String getAppId()
Returns the appId for this Key.
Returns | |
---|---|
Type | Description |
String |
getChild(String kind, String name)
public Key getChild(String kind, String name)
Creates a new key having this
as parent and the given name. The parent key must be
complete.
Parameters | |
---|---|
Name | Description |
kind |
String the kind of the child key to create |
name |
String the name of the key in |
Returns | |
---|---|
Type | Description |
Key |
getChild(String kind, long id)
public Key getChild(String kind, long id)
Creates a new key having this
as parent and the given numeric identifier. The parent
key must be complete.
Parameters | |
---|---|
Name | Description |
kind |
String the kind of the child key to create |
id |
long the numeric identifier of the key in |
Returns | |
---|---|
Type | Description |
Key |
getId()
public long getId()
Returns the numeric identifier of this Key
.
Returns | |
---|---|
Type | Description |
long |
getKind()
public String getKind()
Returns the kind of the Entity
represented by this Key
.
Returns | |
---|---|
Type | Description |
String |
getName()
public @Nullable String getName()
Returns the name of this Key
.
Returns | |
---|---|
Type | Description |
@org.checkerframework.checker.nullness.qual.Nullable java.lang.String |
getNamespace()
public String getNamespace()
Returns the namespace for this Key.
Returns | |
---|---|
Type | Description |
String |
getParent()
public @Nullable Key getParent()
If this Key
has a parent, return a Key
that represents it. If not, simply
return null.
Returns | |
---|---|
Type | Description |
@org.checkerframework.checker.nullness.qual.Nullable com.google.appengine.api.datastore.Key |
hashCode()
public int hashCode()
Returns | |
---|---|
Type | Description |
int |
isComplete()
public boolean isComplete()
Returns true if this Key has a name specified or has been assigned an identifier.
Returns | |
---|---|
Type | Description |
boolean |
toString()
public String toString()
Returns | |
---|---|
Type | Description |
String |