Normalization of numeric ObjectId values 
-----------------------------------------

         Key: CAY-509
         URL: http://issues.apache.org/cayenne/browse/CAY-509
     Project: Cayenne
        Type: Task

  Components: Cayenne Core Library  
    Versions: AFTER 1.2    
    Reporter: Andrus Adamchik
     Fix For: AFTER 1.2


ObjectId is normally made up of the values obtained from the database columns 
that have no Java mapping. This creates a need to "normalize" stored numeric 
values so that "equals" and "hashCode" methods of any two ObjectIds pointing to 
the same logical object, but obtained via different means, behave correctly. 

In 1.2 this problem is solved by converting all numeric values to primitive 
"long" before doing comparison (CAY-503), still such solution is a hack. 
Instead we should enforce a standard Java Type (per JDBC spec, as returned by 
TypesMapping.getJavaBySqlType(int)) in a number of places where the values can 
get inside the ObjectId:

http://objectstyle.org/cayenne/lists/cayenne-devel/2006/04/0115.html 

* ObjectIdQuery (and its interceptors along the stack)
* pk generator (that always returns Integer that may need to be converted to 
BigDecimal)
* DataDomainFlushObserver (autoincrement keys are picked up here)
* ???

Another related issue: CAY-399

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/cayenne/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to