cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Gentry (JIRA)" <>
Subject [jira] [Assigned] (CAY-1813) Missing ObjEntity Attribute Validation with Duplicate DbEntity Columns
Date Wed, 24 Apr 2013 22:13:15 GMT


Michael Gentry reassigned CAY-1813:

    Assignee: Michael Gentry
> Missing ObjEntity Attribute Validation with Duplicate DbEntity Columns
> ----------------------------------------------------------------------
>                 Key: CAY-1813
>                 URL:
>             Project: Cayenne
>          Issue Type: Improvement
>          Components: Modeler
>            Reporter: Michael Gentry
>            Assignee: Michael Gentry
> If you have two ObjEntity attributes mapped to the same DbEntity column, this should
produce a validation warning.
> Real world example (from <obj-entity> tag):
>   <obj-attribute name="addressFrom" type="java.lang.String" db-attribute-path="DRIVER_ID"/>
>   <obj-attribute name="driverId" type="java.math.BigInteger" db-attribute-path="DRIVER_ID"/>
> In this example, addressFrom was mistakenly mapped to the DRIVER_ID column with no validation
warning.  DRIVER_ID is a foreign key.
> At runtime, trying to fault to the driver using getDriver(), this SQL was produced:
> SELECT ... WHERE t0.ID = ? [bind: 1->ID:'1'] (note the quotes)
> The Cayenne runtime found the first mistakenly-mapped DRIVER_ID and used it, which happened
to be a String, causing the SQL to be incorrectly produced and the fault to fail.
> This was difficult to track down.  A validation check to make sure the DB columns aren't
mapped more than once would be helpful to eliminate errors.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message