Siena is a persistence abstraction layer made in Java with various implementations:
* siena-jdbc: persists objects into a relational database using JDBC (status: deeply tested)
* siena-gae: persists objects into the Google App Engine's datastore using its low-level API (status: beta)
* siena-sdb: persists objects using Amazon's SimpleDB (very experimental)
* siena-remote: persists objects remotely using a remote web application that uses siena. (planning)
Siena is also:
* Intrusive. You make a class persistent by
extending a certain class. Relationships are defined also in an
intrusive way.
* Simple. Simplicity is the most important thing.
* Limited. Due to the simplicity there are several unsupported
things such as JOINs.
* Extensible. There are two interfaces you
can implement on your own way.