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

标签 java jackrabbit jcr

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

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

现在,当我尝试在 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) 

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

最佳答案

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

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

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

关于java - 如何将一个对象保存在 Jackrabbit 存储库中,将 map 作为一个字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13679533/

相关文章:

java - 实际 Jackrabbit/Oak 指南和文档

java - setText 方法上的 NullPointerException

java - 如何以秒为单位获取当前的 UTC 时间戳

java:如何使用 apache poi 创建数据透视表?

open-source - 构建 Apache Sling、Felix、Jackrabbit 项目的目的是什么

jackrabbit - 将数据从一个 jackrabbit 存储库(Magnolia 存储库)传输/迁移到另一个 jackrabbit 存储库

java - 在 sling 中创建一个新的 mixin

java - LinkedList 为同一功能提供了多种方法-为什么?

java - 内容存储库的定义到底是什么?

jackrabbit - JCR checkin / checkout 操作