[
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)