I have now been using the Prevayler object persistence framework for Java for about a month on my GPLed knowledge management project.
Using a relational database via plain old JDBC or a object relational mapping tool like Hibernate seems really heavy weight in comparison.
I became interested in Prevalence because for my application, I have frequent "object reads" and it made sense to keep data in memory for fast access. The Java Prevalence implementation Prevayler allows you to trivially write changes to objects to disk so if your JVM process crashes, all application data is restored when your program is restarted.
Prevayler maintains hash maps to access any objects through a unique key.
Anyway, Prevayler is great for high performance systems where it makes sense to store objects in memory but requires a persistence mechanism.