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