cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ksenia Khailenko (JIRA)" <>
Subject [jira] Commented: (CAY-1484) Flattened attribute queries are incorrectly generated
Date Fri, 08 Oct 2010 12:23:34 GMT


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:
>             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:,, CAY-1484.-Fixed-using-of-incorrect-alias.patch,
>   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.

View raw message