[ 
https://issues.apache.org/jira/browse/CAY-2794?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17689212#comment-17689212
 ] 

Matt Watson commented on CAY-2794:
----------------------------------

Great. Thanks for the quick fix!

> Fix Incorrect JavaType for Vertical-Inheritance Attributes
> ----------------------------------------------------------
>
>                 Key: CAY-2794
>                 URL: https://issues.apache.org/jira/browse/CAY-2794
>             Project: Cayenne
>          Issue Type: Bug
>          Components: Core Library
>    Affects Versions: 4.2, 5.0.M1
>            Reporter: Matt Watson
>            Assignee: Nikita Timofeev
>            Priority: Major
>             Fix For: 4.2, 5.0.M1
>
>         Attachments: PastedGraphic-1.png
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> When performing a query on a Vertically Inherited "concrete" DataObject, the 
> {{SelectTranslator.getSql}} will build an incorrect 
> {{ColumnDescriptor.javaClass}} when visiting the first attribute in 
> {{{}DescriptorColumnExtractor.visitAttribute{}}}.
> Though the tests do not fail, I can see the bug exists by running 
> {{VerticalInheritance.testInsertWithMultipleAttributeAndMultipleRelationship}}
>  and putting a stop on {{{}SelectAction.performAction{}}}, right after this 
> line: {{final String sql = translator.getSql();}}
> When inspecting the {{translator.columnDescriptors}} you will see that the 
> first item in the array, for {{name=ID}} has 
> {{{}javaClass=java.lang.String{}}}. I can see the pattern that the first 
> ColumnDescriptor gets assigned the same javaClass as the first Attribute 
> "visited". And for flattened Attribute paths, this first puts in the PK for 
> the join. So in this case it won't "fail" because it can parse an INTEGER to 
> a String. But in my actual application, I have a "birthDate" Attribute, type 
> DATE {{{}java.util.Date{}}}, and my PKs are UUIDs, so it's failing to parse a 
> UUID to a Date.
> Pretty certain the issue is with either 
> {{DescriptorColumnExtractor.visitAttribute}} or 
> {{{}DescriptorColumnExtractor.processTranslationResult{}}}, but I am still 
> trying to understand it all.
> Hopefully you can follow what I am trying my best to describe.
> I will try to create a breaking test soon.



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

Reply via email to