Default PK genration mechanism in Cayenne for PostgreSQL is to use a sequence 
pk_[tablename]. So this is what Cayenne is attempting here. You may want to 
generate all required sequences in DB using the Modeler:

http://cayenne.apache.org/docs/3.0/generate-primary-key-support.html

Andrus


On Oct 13, 2013, at 5:50 PM, Andres L. <[email protected]> wrote:
> Made a mistake on subject.
> 
> ---------- Forwarded message ----------
> From: Andres L. <[email protected]>
> Date: 2013/10/13
> Subject: Public key problem with Cayenne
> To: [email protected]
> 
> 
> Hi. I've reengineered my database schema using Cayenne modeler to use it
> with cayenne. But, when I make this:
> 
>            Parametro a = context.newObject(Parametro.class);
> 
>            a.setRutaauditoria("Primera ruta");
>            a.setNombresoftware("Software name goes here");
>            a.setProduccionadicional(100f);
>            a.setEstado(1);
> 
>            context.commitChanges();
> 
> I get this error:
> --- ERROR --
> Exception in thread "main" org.apache.cayenne.CayenneRuntimeException:
> [v.3.0.2 Jun 19 2011 09:29:50] Commit Exception
>    at
> org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:1149)
>    at
> org.apache.cayenne.access.DataContext.commitChanges(DataContext.java:1060)
>    at dp1.titandevelop.titano.Main.main(Main.java:29)
> Caused by: org.postgresql.util.PSQLException: ERROR: relation
> "public.pk_parametro" does not exist
>  Position: 16
>    at
> org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2157)
>    at
> org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1886)
>    at
> org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
>    at
> org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:555)
>    at
> org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:403)
>    at
> org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:283)
>    at
> org.apache.cayenne.dba.postgres.PostgresPkGenerator.longPkFromDatabase(PostgresPkGenerator.java:91)
>    at
> org.apache.cayenne.dba.JdbcPkGenerator.generatePk(JdbcPkGenerator.java:270)
>    at
> org.apache.cayenne.access.DataDomainInsertBucket.createPermIds(DataDomainInsertBucket.java:172)
>    at
> org.apache.cayenne.access.DataDomainInsertBucket.appendQueriesInternal(DataDomainInsertBucket.java:77)
>    at
> org.apache.cayenne.access.DataDomainSyncBucket.appendQueries(DataDomainSyncBucket.java:79)
>    at
> org.apache.cayenne.access.DataDomainFlushAction.preprocess(DataDomainFlushAction.java:182)
>    at
> org.apache.cayenne.access.DataDomainFlushAction.flush(DataDomainFlushAction.java:134)
>    at org.apache.cayenne.access.DataDomain.onSyncFlush(DataDomain.java:824)
>    at org.apache.cayenne.access.DataDomain$2.transform(DataDomain.java:791)
>    at
> org.apache.cayenne.access.DataDomain.runInTransaction(DataDomain.java:850)
>    at org.apache.cayenne.access.DataDomain.onSync(DataDomain.java:788)
>    at
> org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:1121)
>    ... 2 more
> --- END OF ERROR ---
> 
> I'm using postgresql 9.2 and Cayenne 3.0.2. It's for a course project in
> the university I study in.
> 
> Sorry for my bad english.
> 
> 
> Thank you.

Reply via email to