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
Assignee: 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 *****