Различные способы преобразования между ключами и строками описаны в документации по App Engine здесь . Короче говоря, чтобы получить строковую версию ключа, вы хотите сделать это:
String employeeKeyStr = KeyFactory.keyToString(employeeKey);
Чтобы преобразовать его обратно в ключ, который вы можете получить с помощью ds.get()
, вы должны сделать это:
Key employeeKey = KeyFactory.stringToKey(employeeKeyStr);
Строковая версия, которую вы извлекаете с помощью .toString()
, - это читаемая человеком версия ключа, не предназначенная для передачи в виде машиночитаемого идентификатора.
Конечно, если вы намереваетесь передавать ключи по своему коду, вам вообще не нужно преобразовывать их в строки. И наоборот, если вы хотите использовать их в качестве внешних идентификаторов, вы, вероятно, захотите прочитать оставшуюся часть связанного раздела, в котором обсуждаются предки, идентификаторы и имена; Большую часть времени, когда вы хотите передать идентификаторы, будет достаточно одного имени или идентификатора, и оно будет короче и более читаемым, чем полный ключ.