- An easy-to-use transparent
over a JDBC
relational database. The programmer can
table rows to be extensible Java objects, without having to
write any more code than she would for an equivalent non-persistent
on accesses to persistent
objects (table rows), based on a flexible and efficient
A self-trimming, (LRU/1), cache of persistent objects such that available memory
is efficiently used but reclaimed when needed by the JVM. Thsi ensures that databse accesses
are reduced to a minimum.
- Support for
either explicitly or transparently, with a simple default pattern
appropriate for servicing typical HTTP requests; and behind that, of
course, `connection pooling'.
- Transparent (and transaction-safe)
from the most intensively used tables, such as lookups or localisation phrases.
- Convenient and flexible
of persistent objects.
- CSV utilities to initialise a database from CSV files.
- A comprehensive
, supporting the following operations on any Melati
database without requiring configuration:
- list records in a table matching a template
- add/edit/delete records
- list records linked to (or linking to) a record
- change the capabilities required to read/write a record
- add/delete tables and fields
- upload files
- cascading deletes
Code for a generic
are also available.
For a detailed exposition of Melati see
William's post to the OCAML list.