当前位置:  开发笔记 > 运维 > 正文

将我的POJO保存到Jackrabbit JCR的最佳方法是什么?

如何解决《将我的POJO保存到JackrabbitJCR的最佳方法是什么?》经验,为你挑选了1个好方法。

在Jackrabbit中,我经历了两种方法将我的POJO保存到存储库节点中以便存储在Jackrabbit JCR中:

    写我自己的图层和

    使用Apache Graffito

编写我自己的代码已经证明是耗时且劳动密集的(必须编写并运行许多丑陋的自动化测试),尽管非常灵活.

使用Graffito令人失望,因为它似乎是一个陷入2006年的"死"项目

有哪些更好的选择?



1> Alexander Kl..:

另一种方法是完全跳过OCM框架,并简单地将其javax.jcr.Node用作非常灵活的DAO本身.OCM框架存在的根本原因是因为使用RDBMS,您需要从对象到关系模型的映射.对于已经非常面向对象(节点〜=对象)的JCR,这个潜在的原因消失了.剩下的就是使用DAO可以限制程序员在代码中访问的内容(包括自动完成的帮助).但是这种方法并没有真正利用JCR概念,这意味着无模式和灵活的编程.直接在代码中使用JCR API是遵循该概念的最佳方式.

想象一下,您希望在应用程序的生命周期中向现有节点/对象添加新属性 - 使用OCM框架,您还必须对其进行修改并确保它仍能正常工作.通过直接访问节点,它只是一个单一的变化点.我知道,这是一个很好的方法来解决例如错别字的问题.财产名称; 但是这种恐惧并没有真正得到现实的支持,因为在大多数情况下,当您测试应用程序时,您会很快发现拼写错误或不匹配的名称.一个好的解决方案是使用字符串常量作为公共节点或属性名称,如果您在它们之间公开JCR API,甚至作为API的一部分.这仍然可以让您灵活地快速添加新属性,而无需采用OCM层.

由于对允许的内容或必需的内容(即"半模式")有一些限制,您可以使用节点类型和混合(因为JCR 2.0也可以更改现有内容的节点类型):因此您可以完全处理在存储库级别,不必关心应用程序代码中的输入和约束 - 除了捕获异常;-)

但是,当然,这种选择取决于您的要求和个人喜好.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有