Getting in 3.0 mode for a while. I would like to support SQL (or arbitrary user-defined) functions in Cayenne Expressions. Here is some ideas:

http://objectstyle.org/confluence/display/CAY/Expression+Functions

As I mentioned on Wiki, what prompted me to look closer into this is realization that there is no way other than DerivedDbEntity (and SQLTemplate of course) to define a derived column and do ORDER BY on it. The expression in question was "case when X>0 then (Y/X) else 0 end". Seems like support for functions in qualifiers and orderings (of which Expression is a common abstraction) should be a nice fix to that.

BTW, I thought of a WebObjects-like solution (http://tinyurl.com/ nbats) of defining the SQL script right in the column (DerivedDbEntity works sort of like this). At the end I figured it is not good at all, as it ends up being a read-only attribute, that gets out of sync with the attributes it is derived from if the object is updated... All very confusing and hard to use.

Andrus

Reply via email to