我正在寻找关于持久化Java对象而不需要数据库映射的建议。在简单(和愚蠢)的单词中,我想拥有JPA,但不要被数据库结构的细节所困扰:表,列,键。理想情况下,我想要实现的只是定义Java类,实例化对象以及持久化/检索这些对象及其关联,而无需在其他任何地方重复实体/属性信息。我知道有各种各样的NOSQL数据库,文档数据库,键值存储等等,但是除了RDBMS之外的任何东西,我只有阅读Cassandra,BerkeleyDB的描述和手册,我的经验几乎为零。 MongoDB等我甚至无法判断它们是否支持我的用例;(所以这是我的要求:
FROM Book b WHERE b.price < :allowedPrice AND b.author=:author
)。实际上根据我的阅读,似乎某些对象数据库对我来说是最好的选择,例如DB4O或ObjectDB。不幸的是,DB4O已经死了,对于我来说,ObjectDB的许可似乎有点过于苛刻。也许我不知道有什么可能性来满足上面的要求与其他东西,一些NoSQL解决方案或一些工具在常规&#39;之上。 RDBMS。
您有任何建议或意见吗?
答案 0 :(得分:0)
我决定主要关注对象数据库解决方案,不幸的是我找不到很多。我评估了ObjectDB,我不得不承认它是我碰巧使用的最好的持久性解决方案。
优点:
orm.xml
,消失!),数据库模式演变,在模式更新的列之间移动数据... @OneToMany
,@ManyToMany
和其他类型)不是必需的。但是,如果需要ObjectDB和JPA ORM之间的源兼容性,则仍需要它们。缺点:
对我来说,ObjectDB似乎完全我需要的东西,我将进一步评估它,以检查其他方面,如性能,与JPA更隐蔽的角落的一致性以及使用ORM轻松替换的可能性需要时,模式演变等。