I ran into the same problem. Now it works (again). Thanks.
(Note that the new head revision already has the revised deploy structure). Georg -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of David Jencks Sent: Friday, March 01, 2002 18:00 To: Sam De Backer Cc: 'jboss-user @ lists . sourceforge . net'; 'sam . de . backer @ artesiaservices . be' Subject: Re: [JBoss-user] CMP2.0 - CMR-fields sometimes (reproduceable!) not persisted in D B (jboss3.0.0beta)? Could you try with the cvs jboss? I believe I fixed this yesterday. david jencks On 2002.03.01 11:20:22 -0500 Sam De Backer wrote: > Hi there, > > I'm puzzled, am I overlooking something here, or is this a bug. > > jboss 3.0.0beta, JDK1.3.0, mySQL 3.23.47, mm-mysql-2.0.11, WinNT 4.0 SP6a > > I have a simple scheme, 2 entity beans (CMP), A (Workplace) and B > (Booking), > related One to Many, like A----*B, and a session bean C (Booker) which > act > as a session facade to create B objects that need to be related to A > objects. B has a CMR field, theA (theWorkplace). There is a create method > for B in BLocalHome, which takes as an argument (a.o.) an ALocal. In B's > ejbCreate I set the CMP-fields, in ejbPostCreate I set the CMR field > theA. > The create method of BLocalHome is called from within the session bean C, > giving me as returnvalue a BLocal object. This is the setup, now the > problem. > > When my session bean C creates the B (and tries to link it to the A) and > doesn't do anything more after that (simply returns), the database > doesn't > get updated, no UPDATE sql statement in the jboss-log to set the > FK-column > B.theA to A's PK! (i also use a SQL spy (P6Spy) to see all SQL going to > the > DB, nada there either!) > > 2002-03-01 17:06:23,656 INFO [Default] BookingBean::ejbCreate null > 2002-03-01 17:06:23,656 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Booking] Create: > pk=1014998783656 > 2002-03-01 17:06:23,656 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Booking] > Executing > SQL: SELECT COUNT(*) FROM Booking WHERE id=? > 2002-03-01 17:06:23,656 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Booking.id] > Set > parameter: index=1, jdbcType=BIGINT, value=1014998783656 > 2002-03-01 17:06:23,666 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Booking] > Executing > SQL: INSERT INTO Booking (id, date, person, workplace) VALUES (?, ?, ?, > ?) > 2002-03-01 17:06:23,666 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Booking.id] > Set > parameter: index=1, jdbcType=BIGINT, value=1014998783656 > 2002-03-01 17:06:23,666 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Booking.date] > Set parameter: index=2, jdbcType=DATE, value=Mon Feb 25 00:00:00 > GMT+01:00 > 2002 > 2002-03-01 17:06:23,686 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Booking.person] > Set parameter: index=3, jdbcType=VARCHAR, value=Joeri Leemans > 2002-03-01 17:06:23,686 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Booking.id] > Set > parameter: index=4, jdbcType=BIGINT, value=NULL > 2002-03-01 17:06:23,686 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Booking] Create: > Rows affected = 1 > 2002-03-01 17:06:23,706 INFO [Default] BookingBean::ejbPostCreate > 1014998783656 > 2002-03-01 17:06:23,706 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.Workplace] RESET > PERSISTENCE CONTEXT: id=1014998783475 > 2002-03-01 17:06:23,706 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.ReadAheadCache.Workplace] load data: > entity=Workplace pk=1014998783475 > 2002-03-01 17:06:23,716 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.ReadAheadCache.Workplace] No preload data > found: entity=Workplace pk=1014998783475 > 2002-03-01 17:06:23,716 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.Workplace] Default > eager-load for entity > 2002-03-01 17:06:23,716 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.Workplace] > Executing > SQL: SELECT name, company, floor FROM Workplace WHERE (id=?) > 2002-03-01 17:06:23,716 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Workplace.id] > Set parameter: index=1, jdbcType=BIGINT, value=1014998783475 > 2002-03-01 17:06:23,716 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Workplace.name] > Get result: index=1, javaType=java.lang.String, Simple, value=BRFI1-2-034 > 2002-03-01 17:06:23,716 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Workplace.compan > y] Get result: index=2, javaType=java.lang.String, Simple, value=Wemmel > 2002-03-01 17:06:23,716 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Workplace.floor] > Get result: index=3, javaType=int, Simple, value=2 > 2002-03-01 17:06:23,716 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge.Workplace.Booking_ > workplace] Read ahead cahce load: cmrField=Booking_workplace > pk=1014998783475 > 2002-03-01 17:06:23,716 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.ReadAheadCache.Workplace] load data: > entity=Workplace pk=1014998783475 > 2002-03-01 17:06:23,716 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.ReadAheadCache.Workplace] No preload data > found: entity=Workplace pk=1014998783475 > 2002-03-01 17:06:23,716 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadRelationCommand.Workplace] > Executing > SQL: SELECT id FROM Booking WHERE (workplace=?) > 2002-03-01 17:06:23,716 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Booking.id] > Set > parameter: index=1, jdbcType=BIGINT, value=1014998783475 > 2002-03-01 17:06:23,726 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreEntityCommand.Workplace] Store > command NOT executed. Entity is not dirty: pk=1014998783475 > > When my session bean C creates the B (and tries to link it to the A) and > afterwards calls another method on the newly created B (it seems it could > by > any method, like theBLocalObject.getPrimaryKey(), or a businessmethod > like > the businessmethod void touch() defined in BLocal), the database is > updated!!!! I have an SQL UPDATE statement then in my log, tough only > after > i called my own touch method. End result is perfectly like expected! > > 2002-03-01 17:15:50,871 INFO [Default] BookingBean::ejbCreate null > 2002-03-01 17:15:50,871 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Booking] Create: > pk=1014999350871 > 2002-03-01 17:15:50,871 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Booking] > Executing > SQL: SELECT COUNT(*) FROM Booking WHERE id=? > 2002-03-01 17:15:50,871 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Booking.id] > Set > parameter: index=1, jdbcType=BIGINT, value=1014999350871 > 2002-03-01 17:15:50,881 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Booking] > Executing > SQL: INSERT INTO Booking (id, date, person, workplace) VALUES (?, ?, ?, > ?) > 2002-03-01 17:15:50,881 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Booking.id] > Set > parameter: index=1, jdbcType=BIGINT, value=1014999350871 > 2002-03-01 17:15:50,881 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Booking.date] > Set parameter: index=2, jdbcType=DATE, value=Mon Feb 25 00:00:00 > GMT+01:00 > 2002 > 2002-03-01 17:15:50,881 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Booking.person] > Set parameter: index=3, jdbcType=VARCHAR, value=Joeri Leemans > 2002-03-01 17:15:50,881 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Booking.id] > Set > parameter: index=4, jdbcType=BIGINT, value=NULL > 2002-03-01 17:15:50,901 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCCreateEntityCommand.Booking] Create: > Rows affected = 1 > 2002-03-01 17:15:50,911 INFO [Default] BookingBean::ejbPostCreate > 1014999350871 > 2002-03-01 17:15:50,921 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.Workplace] RESET > PERSISTENCE CONTEXT: id=1014999350701 > 2002-03-01 17:15:50,921 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.ReadAheadCache.Workplace] load data: > entity=Workplace pk=1014999350701 > 2002-03-01 17:15:50,921 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.ReadAheadCache.Workplace] No preload data > found: entity=Workplace pk=1014999350701 > 2002-03-01 17:15:50,921 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.Workplace] Default > eager-load for entity > 2002-03-01 17:15:50,921 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.Workplace] > Executing > SQL: SELECT name, company, floor FROM Workplace WHERE (id=?) > 2002-03-01 17:15:50,921 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Workplace.id] > Set parameter: index=1, jdbcType=BIGINT, value=1014999350701 > 2002-03-01 17:15:50,921 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Workplace.name] > Get result: index=1, javaType=java.lang.String, Simple, value=BRFI1-2-034 > 2002-03-01 17:15:50,921 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Workplace.compan > y] Get result: index=2, javaType=java.lang.String, Simple, value=Wemmel > 2002-03-01 17:15:50,921 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Workplace.floor] > Get result: index=3, javaType=int, Simple, value=2 > 2002-03-01 17:15:50,921 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge.Workplace.Booking_ > workplace] Read ahead cahce load: cmrField=Booking_workplace > pk=1014999350701 > 2002-03-01 17:15:50,921 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.ReadAheadCache.Workplace] load data: > entity=Workplace pk=1014999350701 > 2002-03-01 17:15:50,921 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.ReadAheadCache.Workplace] No preload data > found: entity=Workplace pk=1014999350701 > 2002-03-01 17:15:50,921 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadRelationCommand.Workplace] > Executing > SQL: SELECT id FROM Booking WHERE (workplace=?) > 2002-03-01 17:15:50,921 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Booking.id] > Set > parameter: index=1, jdbcType=BIGINT, value=1014999350701 > 2002-03-01 17:15:50,931 INFO [Default] BookingBean::touch 1014999350871 > 2002-03-01 17:15:50,941 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreEntityCommand.Workplace] Store > command NOT executed. Entity is not dirty: pk=1014999350701 > 2002-03-01 17:15:50,941 INFO [Default] BookingBean::ejbStore > 1014999350871 > 2002-03-01 17:15:50,941 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreEntityCommand.Booking] Executing > SQL: UPDATE Booking SET workplace=? WHERE id=? > 2002-03-01 17:15:50,941 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Booking.id] > Set > parameter: index=1, jdbcType=BIGINT, value=1014999350701 > 2002-03-01 17:15:50,941 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.Booking.id] > Set > parameter: index=2, jdbcType=BIGINT, value=1014999350871 > 2002-03-01 17:15:50,941 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreEntityCommand.Booking] Create: > Rows > affected = 1 > > > What am I doing wrong? > > Sam > > _______________________________________________ > JBoss-user mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/jboss-user > > _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user
