You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "Nikita Timofeev (Jira)" <ji...@apache.org> on 2024/02/06 07:52:00 UTC

[jira] [Closed] (CAY-2840) Vertical Inheritance: Missing subclass attributes with joint prefetch

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

Nikita Timofeev closed CAY-2840.
--------------------------------
      Assignee: Nikita Timofeev
    Resolution: Fixed

[~jhansell] thank you for reporting this and even more for a fix!

Backported fix for *4.2*: https://github.com/apache/cayenne/commit/105a8e2bc9b60a5b0db37191dc70a4a898d58120

> Vertical Inheritance: Missing subclass attributes with joint prefetch
> ---------------------------------------------------------------------
>
>                 Key: CAY-2840
>                 URL: https://issues.apache.org/jira/browse/CAY-2840
>             Project: Cayenne
>          Issue Type: Bug
>          Components: Core Library
>    Affects Versions: 4.2, 5.0-M1
>            Reporter: Jadon Hansell
>            Assignee: Nikita Timofeev
>            Priority: Major
>             Fix For: 4.2.1, 5.0-M1
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> If you use a joint prefetch on a belongs-to relationship whose target is using vertical inheritance, the attributes on the child class are set to null instead of using the results from the database.
> It looks like this is happening when the attribute is read in DescriptorColumnExtractor.visitAttribute, it includes the 'p:' prefetch prefix in the data row key that gets built. Later, the data row result is read from a map without the prefix in the key, and is not found. This only happens on a joint prefetch, disjoint and disjointById work correctly.



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