Когда следует использовать JCR и когда следует использовать JPA / RDBMS? - PullRequest
15 голосов
/ 04 августа 2009

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

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

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

Как вы решили?

1 Ответ

13 голосов
/ 25 августа 2009

На эту тему есть статья Бертиля Шапюи:

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

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

...