Уникальный идентификатор для документов, хранящихся в Jackrabbit

Я довольно новичок в Apache Jackrabbit, и я не мог получить конкретного ответа на этот вопрос, насколько я проверял. Поэтому я публикую следующий вопрос:

Мне нужен уникальный идентификатор для документов, хранящихся в Jackrabbit (независимо от того, хранятся ли документы в файловой системе или БД). Я нашел метод getIdentifier() в javax.jcr.Node. Но не уверен, уникален ли он для каждого узла документа внутри репозитория и могу ли я полагаться на этот идентификатор для получения документа для обновления или удаления?

По сути, я ищу уникальный идентификатор, подобный тому, который был возвращен из new IDfSysObject().getObjectId().getId() в случае Documentum, с помощью которого я могу отследить документ.


person Gandhi    schedule 28.07.2017    source источник


Ответы (1)


Идентификатор действительно уникален, но он может быть нестабильным (например, при перемещении документа).

Однако вы можете сделать его стабильным, добавив тип миксина "mix:referenceable" (см. https://docs.adobe.com/docs/en/spec/jcr/2.0/3_Repository_Model.html#3.8%20Referenceable%20Nodes)

person Julian Reschke    schedule 28.07.2017
comment
Не могли бы вы уточнить, что именно вы подразумеваете под перемещением документа? Вы имеете в виду перемещение в другую папку или рабочее пространство? - person Gandhi; 28.07.2017
comment
Да, переместился в другое место в иерархии. - person Julian Reschke; 28.07.2017
comment
Спасибо за ответ. Итак, как вы сказали с mix:referenceable, я могу использовать node.getidentifier для уникальной ссылки на документ, верно? - person Gandhi; 28.07.2017
comment
Да, именно для этого. - person Julian Reschke; 28.07.2017
comment
Спасибо еще раз. Ваше здоровье - person Gandhi; 28.07.2017