Hi Amedeo, Another option for 3.1 is to use my AggregateUtils:
https://github.com/mrg/cbe/tree/master/FetchingObjects/Aggregates/src/main/java/cbe/fetching/utilities (You'd need both of the files there.) With it you get count, min, max, avg, and sum functions. For your example, this is how you would do a count: SelectQuery query = new SelectQuery(MyEntity.class); long count = AggregateUtils.count(dataContext, query); An example of all 5 aggregate functions in use can be found here: https://github.com/mrg/cbe/blob/master/FetchingObjects/Aggregates/src/main/java/cbe/fetching/Aggregates.java mrg On Mon, May 1, 2017 at 3:55 AM, Andrus Adamchik <[email protected]> wrote: > SQLTemplate it is then. > > > On Apr 30, 2017, at 9:02 PM, Amedeo Mantica <[email protected]> > wrote: > > > > Cool. > > However I'm using the 3.1.2 yet > > Amedeo > > > >> On 30 Apr 2017, at 10:21, Andrus Adamchik <[email protected]> > wrote: > >> > >>> SQLTemplate query = new SQLTemplate(MyEntity.class, "SELECT COUNT(1) > >>> FROM MY_ENTITY"); > >>> query.setFetchingDataRows(true); > >>> List<DataRow> rows = (List<DataRow>) context.performQuery(query); > >> > >> Or you can use SQLSelect as a type-safe and more user-friendly flavor > doing the same thing: > >> > >> List<DataRow> rows = SQLSelect.dataRowQuery("SELECT COUNT(1) FROM > MY_ENTITY").select(context); > >> > >>> You can also use aggregate functions directly with Cayenne API (since > >>> version 4.0.M5): > >>> > >>> long count = ObjectSelect.query(MyEntity.class).selectCount(context); > >> > >> Yep, this one is the best option. > >> > >> Andrus > >> > >> > >>> On Apr 29, 2017, at 5:22 PM, Nikita Timofeev < > [email protected]> wrote: > >>> > >>> Hi Amedeo, > >>> > >>> For raw queries you can use SQLTemplate, like this: > >>> > >>> SQLTemplate query = new SQLTemplate(MyEntity.class, "SELECT COUNT(1) > >>> FROM MY_ENTITY"); > >>> query.setFetchingDataRows(true); > >>> List<DataRow> rows = (List<DataRow>) context.performQuery(query); > >>> > >>> You can also use aggregate functions directly with Cayenne API (since > >>> version 4.0.M5): > >>> > >>> long count = ObjectSelect.query(MyEntity.class).selectCount(context); > >>> > >>> Hope this helps! > >>> > >>> On Sat, Apr 29, 2017 at 4:49 PM, Amedeo Mantica <[email protected]> > wrote: > >>>> Hi all, > >>>> > >>>> Ho to execute a simple raw query with cayenne ? > >>>> > >>>> let say: SELECT COUNT(1) FROM MY_ENTITY; > >>>> > >>>> Thank you > >>>> Amedeo > >>> > >>> > >>> > >>> -- > >>> Best regards, > >>> Nikita Timofeev > >> > > > >
