You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "Ksenia Khailenko (JIRA)" <ji...@apache.org> on 2010/10/08 14:23:34 UTC

[jira] Commented: (CAY-1484) Flattened attribute queries are incorrectly generated

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

Ksenia Khailenko commented on CAY-1484:
---------------------------------------

The problem was in incorrect using of aliases during the translation of the select query. 
The name of flattened attribute, that is longer than name of corresponding db attribute, forced the order of declaredProperties in PersistentDescriptor as {"flattened attribute","some obj relationship",...}. And when the visitor worked, the processing of "flattened attribute" gave alias "t1", that was used also for the source attribute of "some obj relationship", because there was not the resetting of join stack after the processing of "flattened attribute". The patch with the unit test and the fix is attached

> Flattened attribute queries are incorrectly generated
> -----------------------------------------------------
>
>                 Key: CAY-1484
>                 URL: https://issues.apache.org/jira/browse/CAY-1484
>             Project: Cayenne
>          Issue Type: Bug
>          Components: Core Library
>    Affects Versions: 3.0.1
>         Environment: Gentoo linux
> MySQL 5.1
> java version "1.6.0_20"
> Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
> Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)
>            Reporter: Misha Doronin
>         Attachments: bugdemo_maven_derby.zip, bugdemo_maven_derby_nobug.zip, CAY-1484.-Fixed-using-of-incorrect-alias.patch, CayenneBugDemo.zip
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> Attached eclipse project demonstrating issue, including cayenne model
> When creating database structure like:
> table1
>   t1key
>   t1value
>   t2keyref
> table2
>   t2key
>   t2value
>   t3keyref
> table3
>   t3key
>   t3value
> and cayenne model with flattened attribute table3.t3value in table2
> it produces incorrect join query to table2 and 3:
> SELECT t1.t3value, t1.t2key, t0.t2value, t0.t3keyref, t0.t2key FROM testschema.table2 t0 JOIN testschema.table3 t1 ON (t0.t3key = t1.t3keyref) WHERE t0.t2key = ?
> Note t1.t2key, which obviously shouldn't be there and produces error.

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