Java 如何使用事务、版本控制、历史记录和层次结构(不使用模式)持久化POJO?

Java 如何使用事务、版本控制、历史记录和层次结构(不使用模式)持久化POJO?,java,nosql,persistence,pojo,Java,Nosql,Persistence,Pojo,我正在编写一个系统,希望能够将各种作业模板持久化到某种数据存储中。在我们的系统中,模板是域对象,其中包含如何进行各种数学计算的描述 我希望为这些模板POJO提供某种健壮的存储—最好是某种共享/远程存储库,以便多个系统可以访问并可能修改模板 我对NoSQL、图形、文档和对象数据库的数量有点不知所措,希望能从以前做过这件事的人那里得到一些指导 在我的理想世界中,这将是一个神奇的无模式数据存储,因此任何模板对象都可以通过简单的方法调用写入其中,然后稍后再次检索。理想情况下,我希望具备以下特点: 1版本

我正在编写一个系统,希望能够将各种作业模板持久化到某种数据存储中。在我们的系统中,模板是域对象,其中包含如何进行各种数学计算的描述

我希望为这些模板POJO提供某种健壮的存储—最好是某种共享/远程存储库,以便多个系统可以访问并可能修改模板

我对NoSQL、图形、文档和对象数据库的数量有点不知所措,希望能从以前做过这件事的人那里得到一些指导

在我的理想世界中,这将是一个神奇的无模式数据存储,因此任何模板对象都可以通过简单的方法调用写入其中,然后稍后再次检索。理想情况下,我希望具备以下特点:

1版本控制-因此我可以覆盖以前的POJO,并跟踪版本更改 2历史-这样我可以回到时间机器的风格和检索以前的版本 3笔交易-因此一切都是一致的和防弹的 4层次结构-因此我可以对POJO进行分组,并通过路径等找到它们

一些选项似乎包括Jackrabbit OCM、OrientDB、CouchDB。还有JDO DataNucleus vs JPA。有谁能分享一些见解来打破选择太多的迷雾吗?

这是一个多么悬而未决的问题

我用的是Jackrabbit,它可以满足你的所有需求,并且非常容易启动和运行。您可以执行XPATH查询以及其他几种类型的查询。文档方面不是很好,但是JCR文档通常足够应付。还有其他JCR实现。如果你想突破极限,你可能想考虑一下/找到基准:

p>什么是一个开放的问题!
我用的是Jackrabbit,它可以满足你的所有需求,并且非常容易启动和运行。您可以执行XPATH查询以及其他几种类型的查询。文档方面不是很好,但是JCR文档通常足够应付。还有其他JCR实现。你可能想考虑他们/找到基准,如果你打算推动极限:

谢谢TEDRIPPIN -对不起,这是一个广泛的问题!谢谢TedTrippin-抱歉,这是一个范围如此广泛的问题!