如何在 Jackrabbit 存储库中保存一个对象,将 map 作为一个字段



我有一个 pojo 类 ( Location ),它有一个属性为

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

现在,当我尝试在杰克兔存储库中插入位置对象时。它给出的错误是:

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) 

如何在存储库中保存对象?提前谢谢。

我也面临着同样的问题。看看这个链接http://osdir.com/ml/users.jackrabbit.apache.org/2009-06/msg00129.html

默认情况下,@Collection不支持基于 <String, String> 的地图,元素必须是基于 bean 的类,而不是基元类型。如果你想要使用基元类型或包装类,您必须使用集合转换器MultiValueCollectionConverterImpl .

虽然问题已经解决,但我仍然不确定这些值是如何存储的。

最新更新