db4o - database for objects - is a true object database; it manipulates objects in such a fashion that those objects retain their nature throughout their lifetimes - in or out of the database. Object content, structure, and relationships are preserved, regardless of class complexity.
http://aboutjavatech.blogspot.com/2007/11/enterprise-java-community-inside-db4o.html