cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <and...@objectstyle.org>
Subject Re: Mapping primary keys getter methods
Date Fri, 23 Jan 2009 08:44:18 GMT
Never mind, I just did: https://issues.apache.org/cayenne/browse/CAY-1174

Andrus

On Jan 23, 2009, at 9:43 AM, Andrus Adamchik wrote:

> +1 on adding this option to the Modeler. Somebody please open a Jira.
>
> Andrus
>
> On Jan 22, 2009, at 10:23 PM, Mike Kienenberger wrote:
>
>> I think Martin's issue is that he has meaningful primary keys, and he
>> wants to have primary key accessors with meaningful names.
>>
>> Ie, for an Account table, he might want to have "getAccountNumber()"
>> or for a User table, he might want to have "getUserName()" (assuming
>> these are the primary key fields).    And since there are a lot of
>> these, he wants to have them generated automatically with reverse
>> engineering.
>>
>> If it were me, I guess I'd take a look at the reverse engineering  
>> code
>> and put in some kind of conditional flag to handle primary key fields
>> the same as all other fields (there must be some kind of check  
>> already
>> in there that treats them differently, so this new field would simply
>> stop treating them differently.
>>
>> Sounds like a pretty simple "first patch" for the modeler (as simple
>> as any modeler patch gets).
>>
>>
>>
>> On Thu, Jan 22, 2009 at 3:00 PM, Robert Zeigler
>> <robert.zeigler@gmail.com> wrote:
>>> 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