(or anyone on this list) knows of some library (lisp or otherwise) that manages to abstract DAOs in an elegant way, let me know. Also, if
http://common-lisp.net/project/cl-perec/ may be interesting when talking about DAOs and joins. it is the persistency part of cl-wdim. basically it's a CLOS metaclass that brings in rdbms based persistency, pretty much how rucksack or allegro cache works, but with an RDBMS backend. it also have a declarative query language that handles joins transparently among other things.
we only recently factored it out from cl-wdim and there are various patched dependencies, but there was already a user who could successfully run the test suite.