Como criar métodos de API no Google App Engine que possuem vários descendentes / ancestrais
Estou tendo problemas para entender como estruturar uma árvore ancestral com vários falecidos. Suponha que eu tenha um modelo como este (toda entidade tem umLong id
):
User
-Post
-Comment
Onde oComment
é o neto doUser
.
O que é realmente irritante é inserir umComment
Eu preciso gerar a chave doPost
. E para gerar a chave doPost
Eu também preciso saber o ID doUser
:
Key<Post> postKey = Key.create(Key.create(User.class, userId), Post.class, postId);
Isso é um problema para mim porque, ao tentar inserir um Comentário no armazenamento de dados, também preciso passar o userId e o postId apenas para gerar a chave doPost
.
Da mesma forma, é chato tentar obter um Post porque preciso passar o userId e o postId para gerar a chave.
Estou procurando uma maneira melhor de estruturar meu modelo e métodos de API sem precisar passar todos esses IDs de ancestralidade para meus métodos. Eu estava pensando em armazenar o websafeKey em todas as entidades Post e Comment como uma propriedade como esta:
String websafeKey = Key.create(Key.create(User.class, userId), Post.class, postId).getString();
Key<Post> key = Key.create(websafeKey);
Então eu pude a chave para cada Post e Comentário (e outros filhos dessas Entidades)) ali mesmo na Entidade. Então, presumivelmente, eu não precisaria passar todos esses IDs de ancestrais para meus métodos de API o tempo todo.
Não tenho certeza se é uma boa ideia.