Cómo crear métodos API en Google App Engine que tienen varios descendientes / antepasados
Tengo problemas para entender cómo estructurar un árbol ancestral con varios descendientes. Supongamos que tengo un modelo como este (cada entidad tiene unLong id
):
User
-Post
-Comment
Donde elComment
es el nieto de laUser
.
Lo que es realmente molesto es insertar unComment
Necesito generar la clave de laPost
. Y para generar la Clave de laPost
También necesito saber la identificación delUser
:
Key<Post> postKey = Key.create(Key.create(User.class, userId), Post.class, postId);
Esto es un problema para mí porque cuando intento insertar un Comentario en el almacén de datos, también necesito pasar el ID de usuario y el ID de post solo para generar la clave delPost
.
Del mismo modo, es molesto intentar obtener una publicación única porque necesito pasar el ID de usuario y el ID de Post para generar la clave.
Estoy buscando una mejor manera de estructurar mi modelo y métodos API sin tener que pasar todas esas ID de antepasados a mis métodos. Estaba considerando almacenar websafeKey en cada entidad de publicación y comentario como una propiedad como esta:
String websafeKey = Key.create(Key.create(User.class, userId), Post.class, postId).getString();
Key<Post> key = Key.create(websafeKey);
Entonces podría la clave de cada publicación y comentario (y otros hijos de estas entidades) allí mismo en la entidad. Entonces, presumiblemente, no tendría que pasar todas esas ID de antepasados a mis métodos API todo el tiempo.
Sin embargo, no estoy seguro de si es una buena idea.