Сохранение объекта Java Spring в репозитории Magnolia

Если бы у меня было дополнительное приложение Spring, расширяющее мою Magnolia, которое получает некоторый объект Java, который будет использоваться внутри моего приложения, как я могу его сохранить ??? Я уже научился делать запросы, но пока не могу использовать его, чтобы что-то вставить или изменить. Я могу только получить данные. в узлы. где и как мне упорствовать ??

Для информации: у меня есть репозиторий, в котором будут храниться специальные данные, и для этого у меня объявлен тип узла. Поскольку сейчас это весеннее социальное соединение UserConnection, у меня есть "соединения" рабочей области с nodeType mgnl: userConnection

Мой JavaObject - это UserConnection, разработанный рядом с MgnlUser, поэтому я также добавляю свойства, но пока не знаю, что делать с путем и uuid. Я пока не знаю, как это декларировать и где взять.


person user3473226    schedule 15.04.2014    source источник


Ответы (1)


Вы можете сохранить данные так же, как вы их получили. Предполагая, что вы запускаете свое весеннее приложение через цепочку фильтров Magnolia, у вас есть настройка MgnlContext для данного потока и вы можете легко вызвать MgnlContext.getJCRSession("connections") для получения сеанса и узла так же, как вы это делаете для получения данных, для добавления подузлов или установки свойств на данном узле, который вы просто вызываете node.addNode("myNewNode") или node.setProperty("myProp", "newValue") на узле, а затем вызовите session.save(), чтобы сохранить информацию о сеансе. Но я думаю, вы уже все это знаете.

Если вы хотите вместо этого сериализовать весь объект в репо для вас системой, вы можете использовать для этого JackRabbit OCM, или даже проще - используйте интеграцию OCM в Magnolia - http://jira.magnolia-cms.com/browse/MJROCM. Он уже используется в модуле Shop в Magnolia, если вы ищете примеры работы с OCM.

HTH, янв.

person Jan    schedule 17.04.2014