Как создать методы API в Google App Engine, которые имеют несколько потомков / предков
У меня проблемы с пониманием того, как структурировать дерево предков с несколькими потомками. Предположим, у меня есть такая модель (каждая сущность имеетLong id
):
User
-Post
-Comment
ГдеComment
это внукUser
.
Что действительно раздражает, так это вставитьComment
Мне нужно сгенерировать ключPost
, И чтобы сгенерировать ключPost
Мне также нужно знать идентификаторUser
:
Key<Post> postKey = Key.create(Key.create(User.class, userId), Post.class, postId);
Это проблема для меня, потому что при попытке вставить комментарий в хранилище данных мне нужно также передать userId и postId только для генерации ключаPost
.
Точно так же раздражает попытка получить один пост, потому что мне нужно передать и userId, и postId для генерации ключа.
Я ищу лучший способ структурировать мою модель и методы API без необходимости передавать все эти идентификаторы предков моим методам., Я рассматривал вопрос о сохранении websafeKey в каждой сущности Post and Comment как свойство, подобное этому:
String websafeKey = Key.create(Key.create(User.class, userId), Post.class, postId).getString();
Key<Post> key = Key.create(websafeKey);
Тогда я мог бы получить ключ к каждой публикации и комментарию (и другим детям этих сущностей) прямо в сущности. Тогда, по-видимому, мне не нужно было бы постоянно передавать все эти идентификаторы предков моим методам API.
Не уверен, что это хорошая идея.