Прежде всего, если вы используете хранилище данных с высокой репликацией, не используйте JDO или JPA.
Это урок, который я усвоил трудным путем. Он просто не предназначен для этого.
Вместо использования JDO или JPA я выбрал гораздо более простую, понятную и эффективную библиотеку под названием Objectify.
Что касается хранения ваших данных в HRD, вы должны рассказать больше о ваших случаях использования. Если у вас есть модель с одним предком, вы можете сохранить ее в HRD. Если ваша модель также будет содержать «материнскую» линию, вам придется сделать это по-другому.
Наличие иерархического (если возможно) может дать вам 2 преимущества:
- Возможность совершать транзакции по иерархии.
- Избегание дополнительного индекса для родительского объекта, потому что выборка по предку не потребует индексирования родительского поля.
Есть также 2 недостатка:
- Вы можете иметь только одного родителя. Таким образом, вы должны решить, какой из них является лучшим кандидатом для этого. Например, если у вас есть мать, грандиозная материнская линия, вам придется выбрать либо отца, либо мать, но не обоих, чтобы быть родителями.
- Есть некоторые недостатки в размещении / получении объектов с более длинными иерархическими ключами. Например, родительский ключ всегда должен быть выбран. Я предлагаю вам прочитать об этом в документации, потому что, возможно, я вас дезинформирую.
Важно помнить, что вам могут не понадобиться преимущества, в то время как недостатки могут серьезно повлиять на ваш проект. Таким образом, ответ на ваш оригинальный вопрос: только вы можете сказать. :)