You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cayenne.apache.org by "K. Wood (JIRA)" <de...@cayenne.apache.org> on 2007/05/18 22:28:43 UTC
[JIRA] Created: (CAY-790) commitChanges() doesn't imply commit in
db ?
commitChanges() doesn't imply commit in db ?
---------------------------------------------
Key: CAY-790
URL: https://issues.apache.org/cayenne/browse/CAY-790
Project: Cayenne
Issue Type: Bug
Components: CayenneModeler GUI
Environment: Winxp, Eclipse SDK Version: 3.2.2 Build id: M20070212-1330, Cayenne, Version: 2.0.2 (January 14 2007),
Reporter: K. Wood
Assigned To: Andrus Adamchik
Priority: Blocker
have been reading the mail archives and didn't see where this problem ever got fixed.
I am have the exact same thing going on with HSQLDB.
I have the latest versions of that and Cayenne, etc.
Everythign looks hunkey dorey no runtime errors & such, until you access the db with Squirrel SQL. Nothing is there at all!! No commits.
This is just the little demo program with the artists and paintings I'm sure you've seen a zillion times. ( got too many imports, for testing things atm.)
Nothing I have tried works at all.
I even tried with Derby..which I haven't been able to get to work without compiler errors as yet.,
(the Cayenne GUI Modeler creates the empty db but this same code wont compile) anyway...
After reading all the other mail, I think there is a widespread problem here.
Hope you can shed some light on this.
See what you think:
Code:
package cayenne.tutorial;
import org.apache.cayenne.query.SQLTemplate;
import org.apache.cayenne.query.SelectQuery;
import org.apache.cayenne.query.UpdateQuery;
import org.apache.cayenne.access.DataContext;
import java.util.List;
import java.util.*;
import org.apache.cayenne.exp.Expression;
import org.apache.cayenne.exp.ExpressionFactory;
import org.apache.cayenne.exp.ExpressionParameter;
import org.apache.cayenne.query.SelectQuery;
public class up_dt {
public static void main(String[] args) {
DataContext ctxt = DataContext.createDataContext();
Artist picasso = (Artist) ctxt.newObject(Artist.class);
picasso.setName("Pablo Picasso");
picasso.setDateOfBirthString("18811025");
Gallery metropolitan = (Gallery) ctxt.newObject(Gallery.class);
metropolitan.setName("Metropolitan Museum of Art");
Painting selfPortrait = (Painting) ctxt.createAndRegisterNewObject(Painting.class);
selfPortrait.setName("Self-portrait");
selfPortrait.setYear(new Integer(1907));
selfPortrait.setArtist(picasso);
metropolitan.addToPaintings(selfPortrait);
Painting theDream = (Painting) ctxt.createAndRegisterNewObject(Painting.class);
theDream.setName("The Dream");
theDream.setYear(new Integer(1932));
theDream.setArtist(picasso);
metropolitan.addToPaintings(theDream);
// Set artist on both paintings; as a side effect this will automatically
// add these paintings to the Artist's paintings collection.
// theDream.setArtist(picasso);
// Painting girl = (Painting) ctxt.newObject(Painting.class);
// girl.setName("Girl Reading at a Table");
// Painting stein = (Painting) ctxt.newObject(Painting.class);
// stein.setName("Gertrude Stein");
// picasso.addToPaintings(girl);
// picasso.addToPaintings(stein);
// girl.setGallery(metropolitan);
// stein.setGallery(metropolitan);
ctxt.commitChangesToParent(); // not committing the updates. Why?
//
}
}
Heres the log:
INFO QueryLogger: Created connection pool: jdbc:hsqldb:C:/db_area/cayenne/testdb
Driver class: org.hsqldb.jdbcDriver
Min. connections in the pool: 1
Max. connections in the pool: 1
INFO QueryLogger: Opening connection: jdbc:hsqldb:C:/db_area/cayenne/testdb
Login: sa
Password: *******
INFO QueryLogger: +++ Connecting: SUCCESS.
INFO QueryLogger: Detected and installed adapter: org.apache.cayenne.dba.hsqldb.HSQLDBAdapter
INFO QueryLogger: --- will run 2 queries.
INFO QueryLogger: --- transaction started.
INFO QueryLogger: SELECT NEXT_ID FROM AUTO_PK_SUPPORT WHERE TABLE_NAME = 'GALLERY'
INFO QueryLogger: === returned 1 row. - took 32 ms.
INFO QueryLogger: UPDATE AUTO_PK_SUPPORT SET NEXT_ID = NEXT_ID + 20 WHERE TABLE_NAME = 'GALLERY'
INFO QueryLogger: === updated 1 row.
INFO QueryLogger: --- will run 2 queries.
INFO QueryLogger: SELECT NEXT_ID FROM AUTO_PK_SUPPORT WHERE TABLE_NAME = 'ARTIST'
INFO QueryLogger: === returned 1 row. - took 0 ms.
INFO QueryLogger: UPDATE AUTO_PK_SUPPORT SET NEXT_ID = NEXT_ID + 20 WHERE TABLE_NAME = 'ARTIST'
INFO QueryLogger: === updated 1 row.
INFO QueryLogger: --- will run 2 queries.
INFO QueryLogger: SELECT NEXT_ID FROM AUTO_PK_SUPPORT WHERE TABLE_NAME = 'PAINTING'
INFO QueryLogger: === returned 1 row. - took 0 ms.
INFO QueryLogger: UPDATE AUTO_PK_SUPPORT SET NEXT_ID = NEXT_ID + 20 WHERE TABLE_NAME = 'PAINTING'
INFO QueryLogger: === updated 1 row.
INFO QueryLogger: --- will run 3 queries.
INFO QueryLogger: INSERT INTO GALLERY (ID, NAME) VALUES (?, ?) INFO QueryLogger: [bind: 200, 'Metropolitan Museum of Art'] INFO QueryLogger: === updated 1 row.
INFO QueryLogger: INSERT INTO ARTIST (DATE_OF_BIRTH, ID, NAME) VALUES (?, ?, ?) INFO QueryLogger: [bind: '1881-10-25 00:00:00.0', 200, 'Pablo Picasso'] INFO QueryLogger: === updated 1 row.
INFO QueryLogger: INSERT INTO PAINTING (ARTIST_ID, GALLERY_ID, ID, NAME, YEAR) VALUES (?, ?, ?, ?, ?) INFO QueryLogger: [bind: 200, 200, 200, 'The Dream', 1932] INFO QueryLogger: === updated 1 row.
INFO QueryLogger: [bind: 200, 200, 201, 'Self-portrait', 1907] INFO QueryLogger: === updated 1 row.
INFO QueryLogger: +++ transaction committed.
***** end *****
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
Re: [JIRA] Created: (CAY-790) commitChanges() doesn't imply commit
in db ?
Posted by Dirk Olmes <di...@xanthippe.ping.de>.
Andrus Adamchik wrote:
> Keith,
>
> You still used a wrong venue for communicating your problem. You opened
> a bug report, and to me nothing here indicates a bug in Cayenne (i.e. I
> know that commits work). I am forwarding this message to the *user
> mailing list*, where other users may have an insight into this problem.
>
> You can subscribe to the mailing list following the instructions per URL
> below:
>
> http://cayenne.apache.org/mailing-lists.html
>
> BTW, DB output looks right. Any chance that you checked "Container
> Managed Transactions" checkbox? It should be unchecked.
Another guess: I remember having problems when accessing hsql's files in
parallel with two apps. Do you commit changes, stop the app and *then*
look at the data files?
-dirk
Re: [JIRA] Created: (CAY-790) commitChanges() doesn't imply commit in db ?
Posted by Andrus Adamchik <an...@objectstyle.org>.
Keith,
You still used a wrong venue for communicating your problem. You
opened a bug report, and to me nothing here indicates a bug in
Cayenne (i.e. I know that commits work). I am forwarding this message
to the *user mailing list*, where other users may have an insight
into this problem.
You can subscribe to the mailing list following the instructions per
URL below:
http://cayenne.apache.org/mailing-lists.html
BTW, DB output looks right. Any chance that you checked "Container
Managed Transactions" checkbox? It should be unchecked.
Andrus
On May 18, 2007, at 11:28 PM, K. Wood (JIRA) wrote:
> commitChanges() doesn't imply commit in db ?
> ---------------------------------------------
>
> Key: CAY-790
> URL: https://issues.apache.org/cayenne/browse/CAY-790
> Project: Cayenne
> Issue Type: Bug
> Components: CayenneModeler GUI
> Environment: Winxp, Eclipse SDK Version: 3.2.2 Build id:
> M20070212-1330, Cayenne, Version: 2.0.2 (January 14 2007),
> Reporter: K. Wood
> Assigned To: Andrus Adamchik
> Priority: Blocker
>
>
> have been reading the mail archives and didn't see where this
> problem ever got fixed.
>
> I am have the exact same thing going on with HSQLDB.
> I have the latest versions of that and Cayenne, etc.
> Everythign looks hunkey dorey no runtime errors & such, until you
> access the db with Squirrel SQL. Nothing is there at all!! No
> commits.
> This is just the little demo program with the artists and paintings
> I'm sure you've seen a zillion times. ( got too many imports, for
> testing things atm.)
> Nothing I have tried works at all.
> I even tried with Derby..which I haven't been able to get to work
> without compiler errors as yet.,
> (the Cayenne GUI Modeler creates the empty db but this same code
> wont compile) anyway...
>
> After reading all the other mail, I think there is a widespread
> problem here.
>
> Hope you can shed some light on this.
> See what you think:
>
> Code:
> package cayenne.tutorial;
>
> import org.apache.cayenne.query.SQLTemplate;
> import org.apache.cayenne.query.SelectQuery;
> import org.apache.cayenne.query.UpdateQuery;
> import org.apache.cayenne.access.DataContext;
> import java.util.List;
>
> import java.util.*;
> import org.apache.cayenne.exp.Expression;
> import org.apache.cayenne.exp.ExpressionFactory;
> import org.apache.cayenne.exp.ExpressionParameter;
> import org.apache.cayenne.query.SelectQuery;
>
>
>
> public class up_dt {
>
> public static void main(String[] args) {
>
> DataContext ctxt = DataContext.createDataContext();
>
> Artist picasso = (Artist) ctxt.newObject(Artist.class);
>
>
> picasso.setName("Pablo Picasso");
> picasso.setDateOfBirthString("18811025");
>
> Gallery metropolitan = (Gallery) ctxt.newObject(Gallery.class);
> metropolitan.setName("Metropolitan Museum of Art");
>
>
> Painting selfPortrait = (Painting) ctxt.createAndRegisterNewObject
> (Painting.class);
> selfPortrait.setName("Self-portrait");
> selfPortrait.setYear(new Integer(1907));
> selfPortrait.setArtist(picasso);
> metropolitan.addToPaintings(selfPortrait);
>
> Painting theDream = (Painting) ctxt.createAndRegisterNewObject
> (Painting.class);
> theDream.setName("The Dream");
> theDream.setYear(new Integer(1932));
> theDream.setArtist(picasso);
> metropolitan.addToPaintings(theDream);
>
> // Set artist on both paintings; as a side effect this will
> automatically
> // add these paintings to the Artist's paintings collection.
>
> // theDream.setArtist(picasso);
>
>
> // Painting girl = (Painting) ctxt.newObject(Painting.class);
> // girl.setName("Girl Reading at a Table");
>
>
> // Painting stein = (Painting) ctxt.newObject(Painting.class);
> // stein.setName("Gertrude Stein");
>
> // picasso.addToPaintings(girl);
> // picasso.addToPaintings(stein);
>
>
> // girl.setGallery(metropolitan);
> // stein.setGallery(metropolitan);
>
>
> ctxt.commitChangesToParent(); // not committing the updates. Why?
>
>
> //
> }
> }
>
>
> Heres the log:
>
> INFO QueryLogger: Created connection pool: jdbc:hsqldb:C:/db_area/
> cayenne/testdb
> Driver class: org.hsqldb.jdbcDriver
> Min. connections in the pool: 1
> Max. connections in the pool: 1
> INFO QueryLogger: Opening connection: jdbc:hsqldb:C:/db_area/
> cayenne/testdb
> Login: sa
> Password: *******
> INFO QueryLogger: +++ Connecting: SUCCESS.
> INFO QueryLogger: Detected and installed adapter:
> org.apache.cayenne.dba.hsqldb.HSQLDBAdapter
> INFO QueryLogger: --- will run 2 queries.
> INFO QueryLogger: --- transaction started.
> INFO QueryLogger: SELECT NEXT_ID FROM AUTO_PK_SUPPORT WHERE
> TABLE_NAME = 'GALLERY'
> INFO QueryLogger: === returned 1 row. - took 32 ms.
> INFO QueryLogger: UPDATE AUTO_PK_SUPPORT SET NEXT_ID = NEXT_ID +
> 20 WHERE TABLE_NAME = 'GALLERY'
> INFO QueryLogger: === updated 1 row.
> INFO QueryLogger: --- will run 2 queries.
> INFO QueryLogger: SELECT NEXT_ID FROM AUTO_PK_SUPPORT WHERE
> TABLE_NAME = 'ARTIST'
> INFO QueryLogger: === returned 1 row. - took 0 ms.
> INFO QueryLogger: UPDATE AUTO_PK_SUPPORT SET NEXT_ID = NEXT_ID +
> 20 WHERE TABLE_NAME = 'ARTIST'
> INFO QueryLogger: === updated 1 row.
> INFO QueryLogger: --- will run 2 queries.
> INFO QueryLogger: SELECT NEXT_ID FROM AUTO_PK_SUPPORT WHERE
> TABLE_NAME = 'PAINTING'
> INFO QueryLogger: === returned 1 row. - took 0 ms.
> INFO QueryLogger: UPDATE AUTO_PK_SUPPORT SET NEXT_ID = NEXT_ID +
> 20 WHERE TABLE_NAME = 'PAINTING'
> INFO QueryLogger: === updated 1 row.
> INFO QueryLogger: --- will run 3 queries.
> INFO QueryLogger: INSERT INTO GALLERY (ID, NAME) VALUES (?, ?)
> INFO QueryLogger: [bind: 200, 'Metropolitan Museum of Art'] INFO
> QueryLogger: === updated 1 row.
> INFO QueryLogger: INSERT INTO ARTIST (DATE_OF_BIRTH, ID, NAME)
> VALUES (?, ?, ?) INFO QueryLogger: [bind: '1881-10-25 00:00:00.0',
> 200, 'Pablo Picasso'] INFO QueryLogger: === updated 1 row.
> INFO QueryLogger: INSERT INTO PAINTING (ARTIST_ID, GALLERY_ID, ID,
> NAME, YEAR) VALUES (?, ?, ?, ?, ?) INFO QueryLogger: [bind: 200,
> 200, 200, 'The Dream', 1932] INFO QueryLogger: === updated 1 row.
> INFO QueryLogger: [bind: 200, 200, 201, 'Self-portrait', 1907]
> INFO QueryLogger: === updated 1 row.
> INFO QueryLogger: +++ transaction committed.
>
>
>
> ***** end *****
>
>
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>
>