Hi Ivica,

First of all I'd suggest you to use release 2.0.3 - this will spare you some package renaming going forward (as you may have noticed the only difference between 1.2.3 and 2.0.3 is that "org.objectstyle" packages are called "org.apache").

Caused by: java.sql.SQLSyntaxErrorException: Table/View 'AUTO_PK_SUPPORT' does
not exist.

Since the Derby path is a relative file name, could it be that it was created in one directory, but your app, running from a different directory than the modeler, accesses a different file? You may try using absolute file name for the derby DB location. E.g. "jdbc:derby:c:/databases/testdb;create=true"


Then I tried to switch from derby to mysql 5.0 database. Everything went ok I succsesfully created and commited objects to database. When Cayenne Modeler generates DB Schema, I select "Create FK Support" but Modeler dosn't generate sql code for foreign keys. MySQL 5 have support for foreign keys, do Modeler
support this?

It does - only since version 3.0 which is currently Alpha.

Andrus


On Jul 10, 2007, at 7:10 PM, Ivica Puljic wrote:

Hi all,

I am starting with Cayenne (using version 1.2.3), and I am trying tutorial
example.

First I have a problem with derby. I successfully created database schema's
and Java classes form Cayenne modeler. Here is code from "Generate DB
Schema":
===================================================
CREATE TABLE GALLERY (ID INTEGER NOT NULL, NAME VARCHAR (200), PRIMARY KEY
(ID));

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

CREATE TABLE PAINTING (ID INTEGER NOT NULL, NAME VARCHAR (200), PRIMARY KEY
(ID));

ALTER TABLE PAINTING ADD FOREIGN KEY (ID) REFERENCES ARTIST (ARTIST_ID);

ALTER TABLE PAINTING ADD FOREIGN KEY (ID) REFERENCES GALLERY (ID);

DROP TABLE AUTO_PK_SUPPORT;

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');

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

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

Seems everything is OK. Then switched to Eclipse and tried to generate object
and then commite it to database.

  DataContext context = DataContext.createDataContext();                
  Artist picasso = (Artist) context.newObject(Artist.class);
  picasso.setName("Pablo Picasso");
  picasso.setDateOfBirthString("18811025");
  context.commitChanges();

I've got next error:

================================================
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.3 May 6 2007] Commit Exception
        at
org.objectstyle.cayenne.access.DataContext.flushToParent (DataContext.java:1290)
        at
org.objectstyle.cayenne.access.DataContext.commitChanges (DataContext.java:1166)
        at cayenne.tutorial.Main.main(Main.java:30)
Caused by: java.sql.SQLSyntaxErrorException: Table/View 'AUTO_PK_SUPPORT' does
not exist.
================================================

Seems like AUTO_PK_SUPPORT table doesn't exist. From Eclipse Database explorer I connected to my local derby testdb an I can verify that all tables exists.
Then I tried to change PK Generation strategy from Default
to "Database-Generated" and recreate database and then I have next error:

================================================
...
INFO  QueryLogger: +++ Connecting: SUCCESS.
INFO  QueryLogger: *** error.
java.sql.SQLSyntaxErrorException: Table/View 'ARTIST' does not exist.
================================================

So it seems that all tables exists, I successfully connect to derby database
but I can't query any table.

Then I tried to switch from derby to mysql 5.0 database. Everything went ok I succsesfully created and commited objects to database. When Cayenne Modeler generates DB Schema, I select "Create FK Support" but Modeler dosn't generate sql code for foreign keys. MySQL 5 have support for foreign keys, do Modeler
support this?

I am using:
JDK 1.6.0
Cayenne 1.2.3
Derby 10.2.2.0
MySQL connector 5.0.6
MySQL 5.0

Regards,
Ivica


Reply via email to