cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Gentry (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CAY-1813) Missing ObjEntity Attribute Validation with Duplicate DbEntity Columns
Date Tue, 23 Apr 2013 17:13:16 GMT
Michael Gentry created CAY-1813:
-----------------------------------

             Summary: Missing ObjEntity Attribute Validation with Duplicate DbEntity Columns
                 Key: CAY-1813
                 URL: https://issues.apache.org/jira/browse/CAY-1813
             Project: Cayenne
          Issue Type: Improvement
          Components: Modeler
            Reporter: 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: http://www.atlassian.com/software/jira

Mime
View raw message