openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Feinberg (JIRA)" <j...@apache.org>
Subject [jira] Commented: (OPENJPA-257) Getter/Setter type inconsistency in Entity IdClass
Date Tue, 12 Jun 2007 18:08:25 GMT

    [ https://issues.apache.org/jira/browse/OPENJPA-257?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12503949
] 

Jonathan Feinberg commented on OPENJPA-257:
-------------------------------------------

I can work around it by declaring both

void setFoo(String fooKey) { foo = fooKey; }

void setFoo(Foo foo) { foo = foo.getId() }

In the identity class, but this is cheesy.

> Getter/Setter type inconsistency in Entity IdClass
> --------------------------------------------------
>
>                 Key: OPENJPA-257
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-257
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jpa
>    Affects Versions: 1.0.0
>            Reporter: Jonathan Feinberg
>            Priority: Critical
>
> In this excerpt from ClassMetaData, we are seeking getter and setter in an identity class.
We should be seeking getter and setter with type of Entity class's *key*, not type of Entity
class per se. The getter code refers to "c", which was earlier set to the correct object id
field type. But the setter-seeking code refers incorrectly to "fmds[i].getDeclaredType()".
This is a show-stopper, as it makes OpenJPA manual section 3.2 un-implementable.
> if (m == null || !m.getReturnType().isAssignableFrom(c))
>                     throw new MetaDataException(_loc.get("invalid-id",
>                         _type, fmds[i].getName()));
>                 m = Reflection.findSetter(oid, fmds[i].getName(),
>                     fmds[i].getDeclaredType(), false);
>                 if (m == null || m.getReturnType() != void.class)
>                     throw new MetaDataException(_loc.get("invalid-id",
>                         _type, fmds[i].getName()));

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message