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.
>
>