You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cayenne.apache.org by fishmac <jo...@web.de> on 2007/07/28 22:46:59 UTC
trouble w/ tutorial and foreign keys
Cayenne 2.0.3 w/ derby-db
The query at the bottom of this
http://cayenne.apache.org/doc/tutorial-selectquery.html page does not
return 2 rows - it does return 0 rows.
INFO QueryLogger: SELECT t0.NAME, t0.ARTIST_ID, t0.GALLERY_ID, t0.ID FROM
PAINTING t0, ARTIST t1 WHERE t0.ARTIST_ID = t1.ID AND (t1.DATE_OF_BIRTH < ?)
[bind: '1907-01-01 00:00:00.881']
INFO QueryLogger: === returned 0 rows. - took 2 ms.
INFO QueryLogger: +++ transaction committed.
To narrow the problem I tried mysql instead of derby-db. The problem
persists and for some strange reason there is no data in PAINTINGS.ARTIST_ID
and PAINTINGS.GALLERY_ID for the two paintings.
????
--
View this message in context: http://www.nabble.com/trouble-w--tutorial-and-foreign-keys-tf4163514.html#a11846371
Sent from the Cayenne - User mailing list archive at Nabble.com.
Re: trouble w/ tutorial and foreign keys
Posted by Andrus Adamchik <an...@objectstyle.org>.
I think I know what happens. There's no relationship established
between the artist and his paintings (and also paintings and
galleries). So when fetching paintings qualified on artist date of
birth, you get no rows. So before the first commit do this:
(per http://cayenne.apache.org/doc/tutorial-dataobjects.html)
picasso.addToPaintings(girl);
picasso.addToPaintings(stein);
girl.setGallery(metropolitan);
stein.setGallery(metropolitan);
Andrus
On Jul 30, 2007, at 12:00 PM, McRib wrote:
>
> here is the complete log - HTH:
>
>
> INFO QueryLogger: Created connection pool:
> jdbc:mysql://localhost/playground
> Driver class: com.mysql.jdbc.Driver
> Min. connections in the pool: 1
> Max. connections in the pool: 1
> INFO QueryLogger: --- will run 3 queries.
> INFO QueryLogger: Opening connection: jdbc:mysql://localhost/
> playground
> Login: root
> Password: *******
> INFO QueryLogger: +++ Connecting: SUCCESS.
> INFO QueryLogger: --- transaction started.
> INFO QueryLogger: Detected and installed adapter:
> org.apache.cayenne.dba.mysql.MySQLAdapter
> INFO QueryLogger: delete from PAINTING
> INFO QueryLogger: === updated 2 rows.
> INFO QueryLogger: delete from ARTIST
> INFO QueryLogger: === updated 1 row.
> INFO QueryLogger: delete from GALLERY
> INFO QueryLogger: === updated 1 row.
> INFO QueryLogger: +++ transaction committed.
> INFO QueryLogger: --- transaction started.
> INFO QueryLogger: LOCK TABLES AUTO_PK_SUPPORT WRITE
> INFO QueryLogger: SELECT NEXT_ID FROM AUTO_PK_SUPPORT WHERE
> TABLE_NAME =
> 'ARTIST'
> INFO QueryLogger: UPDATE AUTO_PK_SUPPORT SET NEXT_ID = NEXT_ID +
> 20 WHERE
> TABLE_NAME = 'ARTIST' AND NEXT_ID = 260
> INFO QueryLogger: UNLOCK TABLES
> INFO QueryLogger: LOCK TABLES AUTO_PK_SUPPORT WRITE
> INFO QueryLogger: SELECT NEXT_ID FROM AUTO_PK_SUPPORT WHERE
> TABLE_NAME =
> 'GALLERY'
> INFO QueryLogger: UPDATE AUTO_PK_SUPPORT SET NEXT_ID = NEXT_ID +
> 20 WHERE
> TABLE_NAME = 'GALLERY' AND NEXT_ID = 260
> INFO QueryLogger: UNLOCK TABLES
> INFO QueryLogger: LOCK TABLES AUTO_PK_SUPPORT WRITE
> INFO QueryLogger: SELECT NEXT_ID FROM AUTO_PK_SUPPORT WHERE
> TABLE_NAME =
> 'PAINTING'
> INFO QueryLogger: UPDATE AUTO_PK_SUPPORT SET NEXT_ID = NEXT_ID +
> 20 WHERE
> TABLE_NAME = 'PAINTING' AND NEXT_ID = 260
> INFO QueryLogger: UNLOCK TABLES
> INFO QueryLogger: --- will run 3 queries.
> INFO QueryLogger: INSERT INTO ARTIST (DATE_OF_BIRTH, ID, NAME)
> VALUES (?,
> ?, ?)
> INFO QueryLogger: [bind: '1881-10-25 00:00:00.0', 260, 'Pablo
> Picasso']
> INFO QueryLogger: === updated 1 row.
> INFO QueryLogger: INSERT INTO GALLERY (ID, NAME) VALUES (?, ?)
> INFO QueryLogger: [bind: 260, 'Metropolitan Museum of Art']
> INFO QueryLogger: === updated 1 row.
> INFO QueryLogger: INSERT INTO PAINTING (ARTIST_ID, GALLERY_ID, ID,
> NAME)
> VALUES (?, ?, ?, ?)
> INFO QueryLogger: [bind: NULL, NULL, 260, 'Gertrude Stein']
> INFO QueryLogger: === updated 1 row.
> INFO QueryLogger: [bind: NULL, NULL, 261, 'Girl Reading at a Table']
> INFO QueryLogger: === updated 1 row.
> INFO QueryLogger: +++ transaction committed.
> INFO QueryLogger: --- will run 1 query.
> INFO QueryLogger: --- transaction started.
> INFO QueryLogger: SELECT t0.NAME, t0.ARTIST_ID, t0.GALLERY_ID,
> t0.ID FROM
> PAINTING t0 - prepared in 7 ms.
> INFO QueryLogger: === returned 2 rows. - took 11 ms.
> INFO QueryLogger: +++ transaction committed.
> INFO QueryLogger: --- will run 1 query.
> INFO QueryLogger: --- transaction started.
> INFO QueryLogger: SELECT t0.NAME, t0.ARTIST_ID, t0.GALLERY_ID,
> t0.ID FROM
> PAINTING t0 WHERE UPPER(t0.NAME) LIKE UPPER(?) [bind: 'gi%']
> INFO QueryLogger: === returned 1 row. - took 32 ms.
> INFO QueryLogger: +++ transaction committed.
> INFO QueryLogger: --- will run 1 query.
> INFO QueryLogger: --- transaction started.
> INFO QueryLogger: SELECT t0.NAME, t0.ARTIST_ID, t0.GALLERY_ID,
> t0.ID FROM
> PAINTING t0, ARTIST t1 WHERE t0.ARTIST_ID = t1.ID AND
> (t1.DATE_OF_BIRTH < ?)
> [bind: '1907-01-01 00:00:00.777']
> INFO QueryLogger: === returned 0 rows. - took 16 ms.
> INFO QueryLogger: +++ transaction committed.
>
>
>
> --
> View this message in context: http://www.nabble.com/trouble-w--
> tutorial-and-foreign-keys-tf4163514.html#a11860076
> Sent from the Cayenne - User mailing list archive at Nabble.com.
>
>
Re: trouble w/ tutorial and foreign keys
Posted by McRib <m....@arcor.de>.
here is the complete log - HTH:
INFO QueryLogger: Created connection pool:
jdbc:mysql://localhost/playground
Driver class: com.mysql.jdbc.Driver
Min. connections in the pool: 1
Max. connections in the pool: 1
INFO QueryLogger: --- will run 3 queries.
INFO QueryLogger: Opening connection: jdbc:mysql://localhost/playground
Login: root
Password: *******
INFO QueryLogger: +++ Connecting: SUCCESS.
INFO QueryLogger: --- transaction started.
INFO QueryLogger: Detected and installed adapter:
org.apache.cayenne.dba.mysql.MySQLAdapter
INFO QueryLogger: delete from PAINTING
INFO QueryLogger: === updated 2 rows.
INFO QueryLogger: delete from ARTIST
INFO QueryLogger: === updated 1 row.
INFO QueryLogger: delete from GALLERY
INFO QueryLogger: === updated 1 row.
INFO QueryLogger: +++ transaction committed.
INFO QueryLogger: --- transaction started.
INFO QueryLogger: LOCK TABLES AUTO_PK_SUPPORT WRITE
INFO QueryLogger: SELECT NEXT_ID FROM AUTO_PK_SUPPORT WHERE TABLE_NAME =
'ARTIST'
INFO QueryLogger: UPDATE AUTO_PK_SUPPORT SET NEXT_ID = NEXT_ID + 20 WHERE
TABLE_NAME = 'ARTIST' AND NEXT_ID = 260
INFO QueryLogger: UNLOCK TABLES
INFO QueryLogger: LOCK TABLES AUTO_PK_SUPPORT WRITE
INFO QueryLogger: SELECT NEXT_ID FROM AUTO_PK_SUPPORT WHERE TABLE_NAME =
'GALLERY'
INFO QueryLogger: UPDATE AUTO_PK_SUPPORT SET NEXT_ID = NEXT_ID + 20 WHERE
TABLE_NAME = 'GALLERY' AND NEXT_ID = 260
INFO QueryLogger: UNLOCK TABLES
INFO QueryLogger: LOCK TABLES AUTO_PK_SUPPORT WRITE
INFO QueryLogger: SELECT NEXT_ID FROM AUTO_PK_SUPPORT WHERE TABLE_NAME =
'PAINTING'
INFO QueryLogger: UPDATE AUTO_PK_SUPPORT SET NEXT_ID = NEXT_ID + 20 WHERE
TABLE_NAME = 'PAINTING' AND NEXT_ID = 260
INFO QueryLogger: UNLOCK TABLES
INFO QueryLogger: --- will run 3 queries.
INFO QueryLogger: INSERT INTO ARTIST (DATE_OF_BIRTH, ID, NAME) VALUES (?,
?, ?)
INFO QueryLogger: [bind: '1881-10-25 00:00:00.0', 260, 'Pablo Picasso']
INFO QueryLogger: === updated 1 row.
INFO QueryLogger: INSERT INTO GALLERY (ID, NAME) VALUES (?, ?)
INFO QueryLogger: [bind: 260, 'Metropolitan Museum of Art']
INFO QueryLogger: === updated 1 row.
INFO QueryLogger: INSERT INTO PAINTING (ARTIST_ID, GALLERY_ID, ID, NAME)
VALUES (?, ?, ?, ?)
INFO QueryLogger: [bind: NULL, NULL, 260, 'Gertrude Stein']
INFO QueryLogger: === updated 1 row.
INFO QueryLogger: [bind: NULL, NULL, 261, 'Girl Reading at a Table']
INFO QueryLogger: === updated 1 row.
INFO QueryLogger: +++ transaction committed.
INFO QueryLogger: --- will run 1 query.
INFO QueryLogger: --- transaction started.
INFO QueryLogger: SELECT t0.NAME, t0.ARTIST_ID, t0.GALLERY_ID, t0.ID FROM
PAINTING t0 - prepared in 7 ms.
INFO QueryLogger: === returned 2 rows. - took 11 ms.
INFO QueryLogger: +++ transaction committed.
INFO QueryLogger: --- will run 1 query.
INFO QueryLogger: --- transaction started.
INFO QueryLogger: SELECT t0.NAME, t0.ARTIST_ID, t0.GALLERY_ID, t0.ID FROM
PAINTING t0 WHERE UPPER(t0.NAME) LIKE UPPER(?) [bind: 'gi%']
INFO QueryLogger: === returned 1 row. - took 32 ms.
INFO QueryLogger: +++ transaction committed.
INFO QueryLogger: --- will run 1 query.
INFO QueryLogger: --- transaction started.
INFO QueryLogger: SELECT t0.NAME, t0.ARTIST_ID, t0.GALLERY_ID, t0.ID FROM
PAINTING t0, ARTIST t1 WHERE t0.ARTIST_ID = t1.ID AND (t1.DATE_OF_BIRTH < ?)
[bind: '1907-01-01 00:00:00.777']
INFO QueryLogger: === returned 0 rows. - took 16 ms.
INFO QueryLogger: +++ transaction committed.
--
View this message in context: http://www.nabble.com/trouble-w--tutorial-and-foreign-keys-tf4163514.html#a11860076
Sent from the Cayenne - User mailing list archive at Nabble.com.
Re: trouble w/ tutorial and foreign keys
Posted by Andrus Adamchik <an...@objectstyle.org>.
Hi there,
So what output did you get in the previous step - persisting the data
objects?
http://cayenne.apache.org/doc/tutorial-dataobjects.html
Andrus
On Jul 28, 2007, at 11:46 PM, fishmac wrote:
>
> Cayenne 2.0.3 w/ derby-db
>
> The query at the bottom of this
> http://cayenne.apache.org/doc/tutorial-selectquery.html page does not
> return 2 rows - it does return 0 rows.
>
> INFO QueryLogger: SELECT t0.NAME, t0.ARTIST_ID, t0.GALLERY_ID,
> t0.ID FROM
> PAINTING t0, ARTIST t1 WHERE t0.ARTIST_ID = t1.ID AND
> (t1.DATE_OF_BIRTH < ?)
> [bind: '1907-01-01 00:00:00.881']
> INFO QueryLogger: === returned 0 rows. - took 2 ms.
> INFO QueryLogger: +++ transaction committed.
>
> To narrow the problem I tried mysql instead of derby-db. The problem
> persists and for some strange reason there is no data in
> PAINTINGS.ARTIST_ID
> and PAINTINGS.GALLERY_ID for the two paintings.
>
> ????
>
> --
> View this message in context: http://www.nabble.com/trouble-w--
> tutorial-and-foreign-keys-tf4163514.html#a11846371
> Sent from the Cayenne - User mailing list archive at Nabble.com.
>
>