Well, it's trying to convert your returned sequence result into an EdiProfile object. Is that compatible? It might make more sense to read the sequence as a data row -- setFetchingDataRows(true);
Here's code I used to fetch a sequence number (from an old Cayenne 2.0 project, so some things may be a little different now): private Integer fetchDocumentNumberAutoIncrement() { String defaultSql = "SELECT #result('max(DOCUMENT_NUMBER)+1' 'long' 'ID') FROM ENG_WORK_MGMT.AUTHORIZATION_DOCUMENT"; String oracleSql = "SELECT #result('SEQ_AuthDocDocumentNumber.NextVal' 'long' 'ID') FROM DUAL"; SQLTemplate rawSelect = new SQLTemplate(getClass(), defaultSql); rawSelect.setTemplate(OracleAdapter.class.getName(), oracleSql); rawSelect.setTemplate(Oracle11Adapter.class.getName(), oracleSql); rawSelect.setFetchingDataRows(true); List list = getDataContext().performQuery(rawSelect); Map row = (Map)list.get(0); Number autoincrementID = (Number)row.get("ID"); return new Integer(autoincrementID.intValue()); } On Wed, Jan 8, 2014 at 2:45 PM, Rick Bonnett <rbonn...@mesca.com> wrote: > I’m trying to directly fetch the nextval form a postgres sequence using > Cayenne, and am baffled but why I am getting nothing back. > > I’m using SqlTemplate to build my query, since the modeler does;t seem to let > me model a sequence DB object directly. > > Code snippets: > > 1) using performQuery > SQLTemplate query = new SQLTemplate(EdiProfile.class,"select > nextval('live.edi_control_number_sequence') as seqNum"); > List response = ORMContext.performQuery(query); > > 2) using performGenericQuery > > SQLTemplate query = new SQLTemplate(EdiProfile.class,"select > nextval('live.edi_control_number_sequence') as seqNum"); > QueryResponse response = ORMContext.performGenericQuery(query); > > In both cases I am getting back null from the query. > > Here’s what the log shows: > > INFO: Detected and installed adapter: > org.apache.cayenne.dba.postgres.PostgresAdapter > INFO: --- transaction started. > INFO: select nextval('live.edi_control_number_sequence') as seqNum > INFO: === returned 1 row. - took 10 ms. > INFO: +++ transaction committed. > > > And in fact if I go out and look in the postgres database, the sequence is > getting hit and incremented. > > Is this something that just won;t work with Cayenne (in which case I suppose > I’ll have to fall back to using JDBC directly). > > Thanks >