title: Easy way to store and retrieve objects in Java without using a relational DB?
body: <p>Do you know of an "easy" way to store and retrieve objects in Java <strong>without using a relational DB / ORM like Hibernate</strong>?</p>
  
  <p>[<em>Note that I am not considering serialization as-is for this purpose, as it won't allow to retrieve arbitrary objects in the middle of an object graph. Neither am I considering DB4O because of its restrictive license. Thanks.</em>]</p>
  
  <p>"Easy" meaning: not having to handle low-level details such as key/value pairs to rebuild an object graph (as with BerkeleyDB or traditional caches). The same applies for rebuilding objects from a document- or column-oriented DB (CouchDB, HBase, ..., even Lucene).</p>
  
  <p>Perhaps there are interesting projects out there that provide a layer of integration between the mentioned storage systems and the object model (like ORM would be for RDBMSs) that I am not aware of.</p>
  
  <p>Anyone successfully using those in production, or experimenting with persistence strategies other than relational DBs? How about RDF stores?</p>
  
  <p><strong>Update</strong>: I came across a very interesting article: <a href="http://www.metabrew.com/article/anti-rdbms-a-list-of-distributed-key-value-stores/" rel="noreferrer">A list of distributed key-value stores</a></p>