Как сохранить объект в репозитории Jackrabbit с картой как одним полем?

У меня есть класс pojo (Location), у которого есть свойство как

@Collection(jcrType="nt:map") Map<String, String> map;

Теперь, когда я пытаюсь вставить объект Location в репозиторий jackrabbit. Выдает ошибку как:

org.apache.jackrabbit.ocm.exception.IncorrectPersistentClassException: Class of type: java.lang.String has no descriptor. 
        at org.apache.jackrabbit.ocm.mapper.impl.AbstractMapperImpl.getClassDescriptorByClass(AbstractMapperImpl.java:203) 
        at org.apache.jackrabbit.ocm.manager.collectionconverter.impl.DefaultCollectionConverterImpl.doInsertCollection(DefaultCollectionConverterImpl.java:116) 
        at org.apache.jackrabbit.ocm.manager.collectionconverter.impl.AbstractCollectionConverterImpl.insertCollection(AbstractCollectionConverterImpl.java:80) 

Как я могу сохранить объект в хранилище? Заранее спасибо.


person Thinker    schedule 03.12.2012    source источник


Ответы (1)


Я также столкнулся с той же проблемой. Взгляните на эту ссылку http://osdir.com/ml/users.jackrabbit.apache.org/2009-06/msg00129.html

По умолчанию @Collection не поддерживает карты, основанные на <String, String>, элементы должны быть классами на основе bean-компонентов, а не примитивными типами. Если вы хотите использовать примитивные типы или классы-оболочки, вы должны использовать преобразователь коллекций MultiValueCollectionConverterImpl.

Хотя проблема была решена, я до сих пор не уверен, как хранятся значения.

person Cassius    schedule 05.12.2012