Когда вы должны использовать JCR и когда следует использовать JPA/RDBMS?

API Java JCR определяет механизм сохранения, который может использоваться для замены многих традиционных ролей РСУБД. Например, JackRabbit - эталонная реализация JCR - поддерживает транзакции, SQL-запросы, сопоставление объектов и содержимого и т.д.

Вы можете выбрать один или другой, сохраняя двоичные данные в указателях BLOB/файловой системы в СУРБД или текстовых данных в свойствах JCR node. Есть ли у кого-нибудь опыт замены броска их БД в пользу JCR?

Вы можете использовать оба варианта, возможно, хранить двоичные данные в CR и текстовые данные в РСУБД, но тогда вам нужно выразить отношения между системами, синхронизировать их и т.д. Вы также начинаете сталкиваться с трудным вопросом: "Хорошо он чувствует себя хорошо, чтобы сохранить этот заголовок документа с двоичными данными документа, поэтому я сделаю его свойством node... но тогда у меня есть эта запись документа в моей БД, поэтому, возможно, я должен ее там хранить".

Как вы решаете?

Ответы

Ответ 1

В Bertil Chapuis есть статья именно по этой теме:

JCR или RDBMS? (сообщение в блоге)

И есть также движение NoSQL (например, в этой статье или здесь), которая является постоянной дискуссией о том, что, хм-м, скажем, "подчеркивает" недостатки реляционной модели.