cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robert Zeigler <robert.zeig...@gmail.com>
Subject Re: Mapping primary keys getter methods
Date Thu, 22 Jan 2009 20:00:58 GMT
What about having all of your entities extend from a common superclass  
that defines a getter for the pk?
For instance, for many applications, I use a simple int primary key,  
so my entities all extend from a common superclass, with a method ala:

public int getPK() {
   return DataObjectUtils.intPKForObject(this);
}

Or even:

public Object getPK() {
   return DataObjectUtils.pkForObject(this);
}

to be more general.

Or you could use generics:

public <T> T primaryKey(Class<T> type) {
   return type.cast(DataObjectUtils.pkForObject(this));
}

and have all sorts of fun with wrappers, like:

public Integer intPK() {
   return primaryKey(Integer.class);
}

Cheers,

Robert

On Jan 22, 2009, at 1/221:47 PM , wwwebi wrote:

> Hi,
>
> is there a possibility to create for all objects a getter method on  
> the primary key fields within the process of reverse engineering ?
>
> I have a legacy database where the primary keys are used in a  
> similar way as a passport no and as I need it for 100+ tables I  
> wondered if I could not at least get a getter method of the primary  
> key fields during reverse engineering. Setting it afterwards  
> following this faq http://cwiki.apache.org/CAY/mapping-primary-keys.html 
>  is too time consuming. I don't see even an issue only with a getter  
> method.
>
> If it's not possible within the modeler I would certainly like to  
> see this as an option during reverse engineering in the future :-)
>
> Cheers,
> Martin


Mime
View raw message