Я хотел знать, могу ли я сделать запрос к отцу и его сыну в том же запросе.
@Entity
public class Blog {
@Getter
@Setter
@Id
String id;
@Getter
@Setter
int popularity;
}
@Entity
public class Post {
@Id
@Getter
@Setter
String id;
@Getter
@Setter
String title;
@Getter
@Setter
long published;
@Getter
@Setter
String locale;
@Getter
@Setter
@Load
private Ref<Blog> parent; // or @Parent?
}
Это было бы возможно? ->
Тип списка запросов Post> filter locale "Post"> заказ опубликовал "Post"> популярность заказов "Блог"
Благодарю.
Нет, ты не можешь. Это будет объединение, и механизм приложения не поддерживает соединения в запросах. Вам либо нужно скопировать данные, которые вы хотите фильтровать, на объект Post, либо выполнить 2 отдельных запроса и выполнить заданное пересечение в памяти.
Конечно вы можете! сделайте это, добавив поле популярности в сообщение. Вы должны будете обновить это значение каждый день или неделю, если популярность Blog изменится.
Это повторение информации типично и очень распространено в базах данных noSql, не думайте о merise: всегда думайте: "способ получить все данные для чтения (при минимальном количестве запросов)", синхронизация обновлений данных очень распространена в noSql dbs loke cassandra или хранилище данных. Попробуйте прочитать некоторую документацию по этому вопросу
@adevine вы не можете сказать Нет! если вы не знаете
Если вы сделаете поле Ref в поле Post @Parent, вы можете выполнить запрос ancestor() в блоге и получить все (ancestor() включает родительский объект). Тем не менее, вы получите буквально все в этой группе сущностей, если вы не фильтруете по типу ie Post).
Такая микро-оптимизация почти бесполезна. Это не спасет вас от любых денег, и вряд ли вы сохраните какую-либо заметную задержку, особенно если вы @Cache the Blog.