cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <and...@objectstyle.org>
Subject Re: problem with derby and question about mysql
Date Tue, 10 Jul 2007 18:55:29 GMT
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
>


Mime
View raw message