[Dbix-class] Moose

Leandro Hermida softdev at leandrohermida.com
Fri Jul 9 08:41:57 GMT 2010


Hi all,

Been an avid DBIx::Class user for a long time and something I've been
looking for on CPAN on and off also for a long time and thought maybe
it would be possible now that Moose has made such an impact and good
OO paradigm programming can be done in Perl... in Java EE (gasp!) you
have such a thing as JPA, where you define in a standard way classes
for your entity/data objects and via object/relational metadata
(annotations in Java) define in these classes the relationships
between the entities and any ORM mapping particulars that the
underlying ORM engine should use. The underlying ORM transparently
handles how the relational schema should map for the particular RDBMS
being used and ones does queries in an object-centric way and also the
ORM handles how this maps to the appropriate SQL for the schema, you
get the idea.

I always thought JPA was a nice concept since if one is doing OO
programming this is the way one should be thinking about their data
model. Now there are object persistence frameworks in Perl like e.g.
KiokuDB but they don't do real ORM (unless I didn't read something
right) and one might argue why do I need ORM and not just persist the
objects in a store? There are many common reasons where ORM is
required, off the top of my head the fact that commonly other systems
will need to interact with your database and can only work with SQL
and therefore need to see a proper relational data model. There are
also other frameworks like Fey::ORM and Tangram but these seem
dangerous to use in any serious project because they have the common
CPAN problem that they don't have a big enough developer community
behind it and/or aren't even really maintained or developed further
anymore (no offense to the people behind these libraries at all, they
are probably very nice frameworks, but you can understand how scary it
can be to use something like this at work in a big project)

Anyway sorry for the babble, is it possible with Moose and using
DBIx::Class as the underlying ORM engine to create something a la JPA?
Or will it be possible once DBIx::Class 0.09 series comes out and is
more Moose-based?  I've looked through the archives and on googling
and haven't really seen any clear approaches.

best,
Leandro



More information about the DBIx-Class mailing list