[JIRA] Created: (CAY-790) commitChanges() doesn't imply commit in db ?

From: K. Wood (JIRA) ("K.)
Date: Fri May 18 2007 - 16:28:43 EDT

  • Next message: Steve Wells (JIRA): "[JIRA] Created: (CAY-791) ThreadLocal bound DataContext is not obtainable in a multi-thread for a request environment such as ZK"

     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.
    



    This archive was generated by hypermail 2.0.0 : Fri May 18 2007 - 16:29:20 EDT