|| at Jul 6, 2012 at 2:57 pm
When designing DI (and specifically filling in the standard DI modules), I always asked myself a question whether this or that piece is a part of "model" or "runtime services". Before DI was in place, our model was in a way fulfilling DI role, so we'd stick something like a JGroups port in it, which was completely inflexible of course... Now all the runtime decisions about this or that "service" can be deferred till runtime, i.e. *after* modeling, which is good and flexible.
I think with PkGenerator we have a similar case. We allow the model to define a few standard strategies, but then override (or implement them) depending on deployment conditions if needed. Very similar to how DI handles DbAdapter now.
On Jul 6, 2012, at 5:31 PM, Michael Gentry wrote:
I think it would be nice if alternative PK generators could be
specified in the Modeler.
On Fri, Jul 6, 2012 at 2:57 AM, Andrus Adamchik wrote:
Per this document Cayenne supports various PK generation strategies with "Meaningful Primary Key" being user-defined, and the rest generated by the framework:http://cayenne.apache.org/doc/primary-key-generation.html
PkGenerator is an existing interface that implements these strategies. The task is about making it managed by Cayenne dependency injection (DI) container. A similar task done in 3.1 was switching DbAdapter to DI. Currently DbAdapter owns PkGenerator. The task is about breaking this dependency and making PkGenerator directly injectable where it is needed.
BTW this may sound simple, but is actually a fairly deep design task. So if you feel like you need to learn Cayenne runtime before taking on it, I'd recommend maybe other tasks from my earlier list. But of course you are welcome to take on this one right away :)
On Jul 5, 2012, at 5:59 PM, Eshan Sudharaka wrote:
Or is it about adding the primary key functionality like auto increment
which we can see in JPA ? (generating the values of the primary keys for
each rows of a table)
On Thu, Jul 5, 2012 at 8:00 PM, Eshan Sudharaka wrote:
I am interested in this task and need some more information regarding
this. I have a basic question regarding this PkGenerator.
As i see DbEntity contains a collection of DbAttributes for primary key
construction and I think this collection is initialized when we configure
primary keys through the cayenne modeler. So It is bit unclear me to
understand the requirement of having a Pkgenerator while is is the users
responsibility to set the primary key for a DbEntity. It would be great if
you can explain to logic behind this.
*~Thanks & Regards~*
*~Thanks & Regards~*
Dept of Computer Science and Engineering
University of Moratuwa