You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "Andrus Adamchik (Jira)" <ji...@apache.org> on 2022/07/03 10:41:00 UTC

[jira] [Updated] (CAY-1752) DbAttribute should have its own "javaType"

     [ https://issues.apache.org/jira/browse/CAY-1752?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrus Adamchik updated CAY-1752:
---------------------------------
    Summary: DbAttribute should have its own "javaType"  (was: DbAttribute should have "javaType")

> DbAttribute should have its own "javaType"
> ------------------------------------------
>
>                 Key: CAY-1752
>                 URL: https://issues.apache.org/jira/browse/CAY-1752
>             Project: Cayenne
>          Issue Type: Improvement
>          Components: Core Library
>            Reporter: Andrus Adamchik
>            Assignee: Andrus Adamchik
>            Priority: Major
>         Attachments: 0001-CAY-1752-Java-type-should-be-a-property-of-DbAttribu.patch, 0002-CAY-1752-Java-type-should-be-a-property-of-DbAttribu.patch, 0003-CAY-1752-Java-type-should-be-a-property-of-DbAttribu.patch, 0004-CAY-1752-Java-type-should-be-a-property-of-DbAttribu.patch, 0005-CAY-1752-Java-type-should-be-a-property-of-DbAttribu.patch, 0006-CAY-1752-Java-type-should-be-a-property-of-DbAttribu.patch, 0007-CAY-1752-Java-type-should-be-a-property-of-DbAttribu.patch, 0008-CAY-1752-Java-type-should-be-a-property-of-DbAttribu.patch, 0009-CAY-1752-Java-type-should-be-a-property-of-DbAttribu.patch, 0010-CAY-1752-Java-type-should-be-a-property-of-DbAttribu.patch, 0011-CAY-1752-Java-type-should-be-a-property-of-DbAttribu.patch, 1-0001-0012-CAY-1752-Java-type-should-be-a-property-of-DbAttribu.patch, 1-0013-CAY-1752-Java-type-should-be-a-property-of-DbAttribu.patch, 1-0014-CAY-1752-Java-type-should-be-a-property-of-DbAttribu.patch, 1-0015-CAY-1752-Java-type-should-be-a-property-of-DbAttribu.patch, 1-0016-CAY-1752-Java-type-should-be-a-property-of-DbAttribu.patch, 1-0017-CAY-1752-Java-type-should-be-a-property-of-DbAttribu.patch
>
>
> Let's make "javaType" a property of DbAttribute. By default it will be auto-generated from JDBC type. And we can allow to optionally override it at the ObjAttribute level (with an explicit conversion when creating objects from DataRows).
> h2. Problems it Solves
> * Non-standard type mapping (the whole OTHER type implies we provide some Java class for it). This provides runtime consistency and eliminates the internal hacks such as when Cayenne would try to guess which ObjEntities might use this DataRow, and populate DataRows with values corresponding to the ObjAttribute type definitions. This clearly breaks layer separation and doesn't always work.
> * Unexpected PK types. PK columns are often not mapped as ObjAttributes, so their type is guessed by Cayenne, and if the type is something vague such as NUMBER, you may get BigDecimals, and other inappropriate types, and you can  no longer reliably compare objects.
> Prior discussions:
> * http://markmail.org/message/6bs2suislyfp3apk
> * http://markmail.org/message/icr7seqazgsdtewc



--
This message was sent by Atlassian Jira
(v8.20.10#820010)