Hello Gavin, I am sorry, it works for me! I used your source files, MS SQL Server 2000 and your testSchema.sql.
Anyway, I have some remarks. You are using unknown pk with name id, while there is a CMP field id. You should not do it. If you want a "known" pk and use a pk generation command, then just mark the pk field as @jboss.persistence auto-increment="true". alex Thursday, July 24, 2003, 11:48:19 PM, Gavin Matthews wrote: GM> Hi, GM> I posted this to the group a couple of weeks ago when trying to get GM> 3.2.2RC1 working. Alex had a look at it and figured it was fixed for RC2. As GM> RC2 was only a couple of weeks away I decided it'd be easier for me to wait GM> for RC2 than build it, my mistake, I've just grabbed RC2 - it's still there. GM> (I'll log a bug this time). GM> gavin >> -----Original Message----- >> From: Gavin Matthews >> Sent: Thursday, July 03, 2003 7:05 PM >> To: [EMAIL PROTECTED] >> Cc: '[EMAIL PROTECTED]' >> Subject: CMR Problem in 3.2.2? >> >> >> Hi, >> I posted yesterday and last week about a problem I was >> having with CMR when I upgraded from 3.2.0 to 3.2.2. I've >> done more investigation and I don't think my previous mails >> were entirely accurate (or very clear) so let me start over. >> >> The Problem: >> I'm experiencing NPE in our app because the CMR >> relationships are (apparently) not being created. This didn't >> occur with our app in 3.2.0. >> >> I have a sample case which I believe is representitive of >> the problem I'm seeing in our app. The beans are Foo & Bar >> (sorry about the naming). The relationship is N-Foo-1-Bar. >> The relation is being set in post create: >> >> public abstract class FooEJB extends AbstractEntityBean { >> ... >> public void ejbPostCreate(BarLocal bar, String fooValue) >> throws CreateException { >> sLog.debug("ejbPostCreate(" + getId() + ")"); >> >> this.setBar(bar); >> } >> ... >> } >> >> And I have a test session which does the following: >> >> ... >> BarLocal bar = createBar("This is a bar"); >> FooLocal foo = createFoo(bar, "This is a foo"); >> >> sLog.info("****************************************"); >> sLog.info("Bar id through foo: " + foo.getBar().getId()); >> sLog.info("Bar id through bars foos: "); >> >> Collection foos = bar.getFoos(); >> sLog.info("Number of foos associated with bar: " >> + foos.size()); >> >> Iterator fooIter = bar.getFoos().iterator(); >> while (fooIter.hasNext()) { >> FooLocal tmpFoo = (FooLocal) fooIter.next(); >> sLog.info("Foo id: " + tmpFoo.getId()); >> sLog.info("Bar id: " + tmpFoo.getBar().getId()); >> } >> sLog.info("****************************************"); >> ... >> >> I'd expect the output of this test case to be: >> >> 18:58:38,875 INFO [FooBarSessionEJB] >> **************************************** >> 18:58:38,890 INFO [FooBarSessionEJB] Bar id through foo: 1011 >> 18:58:38,890 INFO [FooBarSessionEJB] Bar id through bars foos: >> 18:58:38,890 INFO [FooBarSessionEJB] Number of foos >> associated with bar: 1 >> 18:58:38,906 INFO [FooBarSessionEJB] Foo id: 1017 >> 18:58:38,906 INFO [FooBarSessionEJB] Bar id: 1011 >> 18:58:38,906 INFO [FooBarSessionEJB] >> **************************************** >> >> What I'm actually seeing is: >> >> 18:58:38,875 INFO [FooBarSessionEJB] >> **************************************** >> 18:58:38,890 INFO [FooBarSessionEJB] Bar id through foo: 1011 >> 18:58:38,890 INFO [FooBarSessionEJB] Bar id through bars foos: >> 18:58:38,890 INFO [FooBarSessionEJB] Number of foos >> associated with bar: 0 >> 18:58:38,906 INFO [FooBarSessionEJB] >> ******************************************* >> >> If I add a finder call after the beans are created (which >> forces the beans to be synchronized to the database) then I >> get the results I expect. This makes me think that there's a >> problem with the caching - the "bar" returned by the >> create() call is not the same Bar instance as returned by >> foo.getBar(). Which means that I have 2 instances of the same >> bean within the same transaction which have different state - >> seems like a bug to me, I'd have expected the foo.getBar() >> call to return the same "bar" as was passed to the create() call. >> >> I've attached the source. For the sample, let me know what you think, >> >> thanks, >> gavin ------------------------------------------------------- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01 _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user