Re: AUTO_PK_SUPPORT Error

From: Tobias SCHOESSLER (Tobias.Schoessle..nvienna.org)
Date: Fri Feb 16 2007 - 09:36:43 EST

  • Next message: Andrus Adamchik: "Re: Cayenne and Daylight Savings Time Change?"


    hi,

    the sybase adapter used to created a stored procedure to retrieve the next PK from the AUTO_PK_SUPPORT tabel. I dont see this in your script, but I don't know if the derby adapter needs this at all.

    Tobias.



    Pogs <bloo_clo..ahoo.com>

    Friday, 16 February 2007 15:04
    Please respond to
    use..ayenne.apache.org

    To
    use..ayenne.apache.org
    cc
    Subject
    Re: AUTO_PK_SUPPORT Error





    Here are the SQL Statements being generated.

    Thanks,
    Jeff

    CREATE TABLE GALLERY (GALLERY_ID INTEGER NOT NULL, GALLERY_NAME VARCHAR (200), PRIMARY KEY (GALLERY_ID))
    ;

    CREATE TABLE ARTIST (ARTIST_DATE_OF_BIRTH DATE, ARTIST_ID INTEGER NOT NULL, ARTIST_NAME VARCHAR (200), PRIMARY KEY (ARTIST_ID))
    ;

    CREATE TABLE PAINTING (PAINTING_ID INTEGER NOT NULL, PAINTING_NAME VARCHAR (200), PRIMARY KEY (PAINTING_ID))
    ;

    CREATE TABLE AUTO_PK_SUPPORT (  TABLE_NAME CHAR(100) NOT NULL,  NEXT_ID INTEGER NOT NULL,  PRIMARY KEY(TABLE_NAME))
    ;

    DELETE FROM AUTO_PK_SUPPORT WHERE TABLE_NAME IN ('ARTIST', 'GALLERY', 'PAINTING')
    ;

    INSERT INTO AUTO_PK_SUPPORT (TABLE_NAME, NEXT_ID) VALUES ('ARTIST', 200)
    ;

    INSERT INTO AUTO_PK_SUPPORT (TABLE_NAME, NEXT_ID) VALUES ('GALLERY', 200)
    ;

    INSERT INTO AUTO_PK_SUPPORT (TABLE_NAME, NEXT_ID) VALUES ('PAINTING', 200)
    ;


    Michael Gentry <blacknex..mail.com> wrote: Can you send us the SQL (when you choose Generate Database Schema) it
    is showing so we can see the PK statements the modeler is generating
    for you?

    Thanks,

    /dev/mrg


    On 2/16/07, Pogs  wrote:
    > The only options available are as follows:
    >
    > Drop Tables (unchecked)
    > Drop Primary Key Support (unchecked)
    > Create Tables (checked)
    > Create FK Support (checked)
    > Create Primary Key Support (checked
    >
    > I believe these should create the table AUTO_PK_SUPPORT as I can see it on the SQL convertion. But still I receive this exception. What other strategies should I use for generating my primary keys? Please advice.
    >
    > Thanks,
    > Jeff
    >
    > Mike Kienenberger  wrote: Open up the Cayenne modeler, go to the generate schema panel, and
    > generate your primary key information to create and setup this table.
    >
    > Alternately, choose a different primary key generation strategy other
    > than the default.
    >
    > On 2/15/07, Pogs  wrote:
    > > Please advice on what to with the following error.
    > >
    > > Thanks,
    > > Jeff
    > >
    > > Complete Stacktrace:
    > >
    > > INFO  QueryLogger: Created connection pool: jdbc:derby:testdb;create=true
    > >     Driver class: org.apache.derby.jdbc.EmbeddedDriver
    > >     Min. connections in the pool: 1
    > >     Max. connections in the pool: 1
    > > INFO  QueryLogger: Opening connection: jdbc:derby:testdb;create=true
    > >     Login: null
    > >     Password: *******
    > > INFO  QueryLogger: +++ Connecting: SUCCESS.
    > > INFO  QueryLogger: Detected and installed adapter: org.objectstyle.cayenne.dba.derby.DerbyAdapter
    > > INFO  QueryLogger: SELECT NEXT_ID FROM AUTO_PK_SUPPORT WHERE TABLE_NAME = ? FOR UPDATE [bind: 'ARTIST']
    > > INFO  QueryLogger: --- transaction started.
    > > INFO  QueryLogger: Opening connection: jdbc:derby:testdb;create=true
    > >     Login: null
    > >     Password: *******
    > > INFO  QueryLogger: +++ Connecting: SUCCESS.
    > > Exception in thread "main" org.objectstyle.cayenne.CayenneRuntimeException: [v.1.2.1 August 30 2006] Commit Exception
    > >     at org.objectstyle.cayenne.access.DataContext.flushToParent(DataContext.java:1289)
    > >     at org.objectstyle.cayenne.access.DataContext.commitChanges(DataContext.java:1165)
    > >     at src.cayenne.tutorial.Main.main(Main.java:30)
    > > Caused by: java.sql.SQLException: Table/View 'AUTO_PK_SUPPORT' does not exist.
    > >     at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
    > >     at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
    > >     at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
    > >     at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
    > >     at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
    > >     at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
    > >     at org.apache.derby.impl.jdbc.EmbedPreparedStatement.(Unknown Source)
    > >     at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.(Unknown Source)
    > >     at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.(Unknown Source)
    > >     at org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Unknown Source)
    > >     at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source)
    > >     at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source)
    > >     at org.objectstyle.cayenne.conn.ConnectionWrapper.prepareStatement(ConnectionWrapper.java:325)
    > >     at org.objectstyle.cayenne.conn.ConnectionWrapper.prepareStatement(ConnectionWrapper.java:331)
    > >     at org.objectstyle.cayenne.access.TransactionConnectionDecorator.prepareStatement(TransactionConnectionDecorator.java:196)
    > >     at org.objectstyle.cayenne.dba.derby.DerbyPkGenerator.pkFromDatabase(DerbyPkGenerator.java:91)
    > >     at org.objectstyle.cayenne.dba.JdbcPkGenerator.generatePkForDbEntity(JdbcPkGenerator.java:326)
    > >     at org.objectstyle.cayenne.access.DataDomainInsertBucket.createPermIdsForObjEntity(DataDomainInsertBucket.java:194)
    > >     at org.objectstyle.cayenne.access.DataDomainInsertBucket.appendQueriesInternal(DataDomainInsertBucket.java:122)
    > >     at org.objectstyle.cayenne.access.DataDomainSyncBucket.appendQueries(DataDomainSyncBucket.java:108)
    > >     at org.objectstyle.cayenne.access.DataDomainFlushAction.preprocess(DataDomainFlushAction.java:211)
    > >     at org.objectstyle.cayenne.access.DataDomainFlushAction.flush(DataDomainFlushAction.java:167)
    > >     at org.objectstyle.cayenne.access.DataDomain.onSyncFlush(DataDomain.java:830)
    > >     at org.objectstyle.cayenne.access.DataDomain$2.transform(DataDomain.java:801)
    > >     at org.objectstyle.cayenne.access.DataDomain.runInTransaction(DataDomain.java:856)
    > >     at org.objectstyle.cayenne.access.DataDomain.onSync(DataDomain.java:798)
    > >     at org.objectstyle.cayenne.access.DataContext.flushToParent(DataContext.java:1261)
    > >     ... 2 more
    > >
    > >
    > >
    > > ---------------------------------
    > > Now that's room service! Choose from over 150,000 hotels
    > > in 45,000 destinations on Yahoo! Travel to find your fit.
    >
    >
    >
    > ---------------------------------
    > Be a PS3 game guru.
    > Get your game face on with the latest PS3 news and previews at Yahoo! Games.



    ---------------------------------
    Want to start your own business? Learn how on Yahoo! Small Business.



    This archive was generated by hypermail 2.0.0 : Fri Feb 16 2007 - 09:37:15 EST