[ 
https://issues.apache.org/jira/browse/CAY-2778?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nikita Timofeev updated CAY-2778:
---------------------------------
    Fix Version/s: 5.0-M3
                       (was: 5.0-M2)

> Inheritance: queries on superclass should support subclass prefetches
> ---------------------------------------------------------------------
>
>                 Key: CAY-2778
>                 URL: https://issues.apache.org/jira/browse/CAY-2778
>             Project: Cayenne
>          Issue Type: Improvement
>    Affects Versions: 4.2.RC1
>            Reporter: Andrus Adamchik
>            Priority: Major
>             Fix For: 5.0-M3
>
>         Attachments: diff.txt
>
>
> For an entity inheritance hierarchy, fetching on superclass should allow 
> prefetches on subclasses. Semantically they can be resolved as 
> DbRelationships, and the results can be applied only to the right subclasses.
> E.g. in our unit tests (where somewhat weirdly, User inherits from Role), the 
> following code throws, while it should succeed (see attached patch with a 
> full test) :
> {noformat}
> ObjectSelect.query(Role.class)
>    .prefetch(User.USER_PROPERTIES.joint())
>    .select(context)
> {noformat}
> This would allow to properly deep-refresh objects across the inheritance 
> hierarchy.
> I suspect that we may eventually decide to similarly support orderings and 
> qualifiers based on subclass attributes (so any common SQL translator 
> algorithms should be generalized across use cases). But prefetching seems 
> like the most useful initial case.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to