On Sat, 12 Nov 2005 20:06:57 -0500, "John Siracusa" <[EMAIL PROTECTED]> said: > On 11/12/05 7:46 PM, Mark D. Anderson wrote: > > It really is sad that Java has not one but multiple open source > > solutions in this space, any one of which is better than *all* the > > ones for Perl (Hibernate, OJB, SimpleORM, just to name a few). > > > > Java is just so awful in other ways though, I'd rather fight than switch > > I read a few articles on Hibernate and didn't come away wanting to use it > in > preference to any of the various Perl ORMs I've worked with. Maybe > that's > the language prejudice talking, or maybe it's because I so rarely do any > form of table inheritance at all, so I don't notice the shortcomings in > that > area (and enjoy in the strengths in other areas :)
I agree; if all I want is a SQL abstraction layer that supports a direct 1:1 mapping between objects and tables, there are numerous decent Perl solutions. On the other hand, at that level, the bar is so low, that a programmer experienced with both Perl and SQL has to decide whether it is easier to try to fathom one of the poorly documented CPAN modules, or roll their own. That is part of the reason there are so many on CPAN, perhaps rivalled only by html templating modules. Support for (even one) inheritance mechanism is just one example of what a mature ORM solution would offer. Some other issues, which are supported by a few Perl solutions, but hardly documented are: - support for compound primary keys - support for multiple mechanisms of primary key generation (client side or native database) - support for transactions (not autocommit) - a cache that that ensures only one instance per persisted object in storage, and that handles transaction isolation and rollback correctly. - supports for cascading delete and cascading update to be done either client-side or via native database support - support for update conflict detection via a version column - optimizing out "do nothing" updates - configuration of lazy and non-lazy columns - incorporation of SQL stored procedures in the method generation - easy configuration of hooks for validation and (de)serialization, by type or column - iterators that don't fetch all records until they are actually required - different mappings for update and query (for example a non-updatedable database view for query) -mda ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php _______________________________________________ Rose-db-object mailing list Rose-db-object@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rose-db-object