Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
3.0
-
None
Description
Related to the inheritance tasks (CAY-795)... We need a way to process all different forms of DataRows that inheritance select queries require. Till now Cayenne worked with DataRows that represented a single entity and used DbAttribute names as keys to the values.
There were a few exceptions that were handled by "normalization" process during object creation. I want this to exception to become a rule, and abstract normalization process via EntityResult, "compiled" in the ClassDescriptor. So for the old style rows , normalization will be a noop (encapsulated in an EntityResult), and for the rows using special column naming and extra meta-columns (such as in case of horizontal inheritance), there will be a conversion process involved.
Also the plan is to use EntityResult in SELECT ... clause column name generation, including UNION queries under horizontal inheritance.
[Finally going forward (will not be done under this Jira, or maybe not even in 3.0), we may migrate to array-based positional DataRows instead of a current Map-based. Per CAY-999 this should provide huge memory savings, and preclude the need for "normalization".]