Aggregate Functions
| Cayenne Version | 3.0.2 |
| Project Directory | FetchingObjects/Aggregates |
| Source Directory | FetchingObjects/Aggregates/src/main/java |
| Resource Directory | FetchingObjects/Aggregates/src/main/resources | Inputs | N/A |
| Compiling/Running |
cd FetchingObjects/Aggregates mvn clean compile mvn exec:java -Dexec.mainClass=cbe.fetching.Aggregates |
| View/Edit Model | mvn cayenne-modeler:run | Status |
Code: Mostly Done Documentation: Needs work |
Cayenne doesn't natively support aggregate database functions, but you can incorporate this example into your application if you need this functionality.
This example is a bit different in that it doesn't illustrate native Cayenne functionality, but uses a custom AggregatesUtil class to implement the functionality. The documentation is more about showing how to use AggregatesUtil than explaining how it works, but you can certainly explore the class to learn more about working with Cayenne at a lower level (custom SQL is generated).
The AggregatesUtil class includes methods to perform a COUNT(*), SUM(column), AVG(column), MIN(column), and MAX(column) of database records using a Cayenne query. These methods return long or BigDecimal results instead of normal Cayenne objects.
TBD...more to come.
The AggregatesUtil class (and supporting classes) was inspired by Andrey Razumovsky (where "inspired by" means "mostly stolen from") who posted the original code on the Cayenne mailing list.