【发布时间】:2009-01-14 16:10:25
【问题描述】:
您是否知道在 Java 中存储和检索对象的“简单”方法不使用像 Hibernate 这样的关系 DB/ORM?
[请注意,我并没有为此考虑按原样进行序列化,因为它不允许检索对象图中间的任意对象。我也不考虑 DB4O,因为它有限制性许可。谢谢。]
“简单”的意思是:不必处理诸如键/值对之类的低级细节来重建对象图(与 BerkeleyDB 或传统缓存一样)。这同样适用于从面向文档或面向列的数据库(CouchDB、HBase、...,甚至 Lucene)重建对象。
也许有一些有趣的项目在上述存储系统和我不知道的对象模型(例如用于 RDBMS 的 ORM)之间提供了一层集成。
任何人成功地在生产中使用这些,或者尝试使用关系数据库以外的持久性策略? RDF 商店怎么样?
更新:我看到一篇非常有趣的文章:A list of distributed key-value stores
【问题讨论】:
-
也许您应该将您的问题重新表述为“在不使用关系数据库、对象序列化或任何 GPL 许可产品的情况下在 Java 中存储和检索对象的简单方法?”。顺便说一句,我也很想知道这样的解决方案。
-
谢谢,但我认为这个标题太长了!
-
我同意。我在这里看到 2 个选项:直接写入文件系统(序列化)或使用数据库。这两个你都不想要?还是您想要 DB40 之类的东西,但许可限制较少?
-
我不同意你对序列化的反对。您可以序列化地图,拥有序列化对象的地图等。
-
@Tom:也许我在那里不够清楚。我的意思是,如果我序列化,即一个包含 5 只动物的动物园对象,我怎么可能独立地检索/反序列化任何给定的动物?你看到了吗?
标签: java persistence relational