[ 
https://issues.apache.org/jira/browse/JDO-630?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12799262#action_12799262
 ] 

Craig Russell commented on JDO-630:
-----------------------------------

Just a couple of comments on the test case:

This uses the structure of the company model with class Person with the id; 
abstract class Employee extends Person; class PartTimeEmployee extends 
Employee; and FullTimeEmployee extends Employee. The mapping uses single table 
for all classes with a discriminator column.

The error is NPE when getting the object by id where the oid is Employee, 
validate false. 

The failures are when getting the object by id where the oid is Person, whether 
validate is true or false it returns a Person instead of a FullTimeEmployee.

> Support specification of exact class in SingleFieldIdentity
> -----------------------------------------------------------
>
>                 Key: JDO-630
>                 URL: https://issues.apache.org/jira/browse/JDO-630
>             Project: JDO
>          Issue Type: Improvement
>          Components: specification, tck2
>            Reporter: Andy Jefferson
>            Assignee: Craig Russell
>             Fix For: JDO 2 maintenance release 3
>
>         Attachments: jdo-630.patch
>
>
> When calling PersistenceManager.getObjectById() with a SingleFieldIdentity, 
> there seems to be no way of avoiding the following 
> (if the implementation decides to do so):
> "It is an implementation decision whether to access the data store, if 
> required to determine the exact class. This will be the case of  inheritance, 
> where multiple <code>PersistenceCapable</code> classes share the same 
> ObjectId class."
> Now when I know for sure that the targetClassName of the given 
> SingleFieldIdentity already denotes the correct class for the given id,  how 
> can I avoid that additional roundtrip to the database for finding the exact 
> class?
> It would be useful to have a way of specifying a SingleFieldIdentity to be 
> for the exact class specified. This could be done by addition of methods
> void setExact(boolean flag);
> boolean getExact();
> to SingleFieldIdentity

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

Reply via email to