Nikita Timofeev created CAY-2882:
------------------------------------
Summary: Dynamic cast of injected values in object initialization
Key: CAY-2882
URL: https://issues.apache.org/jira/browse/CAY-2882
Project: Cayenne
Issue Type: Improvement
Components: Core Library
Reporter: Nikita Timofeev
Fix For: 4.2.2, 5.0-M2
This improvement addresses the logic behind Cayenne injecting initial values
into created objects using expressions within the qualifier. Currently, this
logic is quite strict, as it simply passes scalar values as-is to the
"{{{}.writeProperty()"{}}} call.
This can result in issues such as a simple qualifier like {{"attr = 123"}}
throwing a {{ClassCastException}} if the {{"attr"}} type is not `int`, but
`long` or another numeric type.
The proposed change aims to simply allow for some basic widening conversions
for numeric types. Additionally, we might consider string to date/time value
conversions.
We have already laid some groundwork by allowing enum values as strings
(CAY-2399).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)