Then I'd look closer at #3. Something related to what happened in the app between the 2 events.
E.g. one common mistake is using a cross-thread shared ObjectContext (or its objects) to modify and commit objects. Andrus On Sep 13, 2011, at 6:20 PM, Christian Grobmeier wrote: > Hi Andrus, > > thanks for the comments. I will check that again and come back on > thursday with the answer (currently on travel). > What bugs me really is that it works sometimes, and sometimes not. Can > this behavior be explained with Michaels/your suggestions? > > Cheers > > On Tue, Sep 13, 2011 at 4:09 PM, Andrus Adamchik <and...@objectstyle.org> > wrote: >> I haven't read the entire thread, only the messages quoted below. >> >> Michael's advise is absolutely correct. However the initial code worked >> because the Role was likely already registered in the context, so the >> UserRoles was pulled automatically in the same context. >> >> So ... a few things to check: >> >> 1. Can you confirm in DB that there's no userrole records with NULL roleid? >> 2. The mapping - if you could post the XML of all 3 DbEntity/ObjEntity >> mappings with their relationships it may shed some light on this problem. >> 3. The context - what happens between commit and access of the role object >> (serialization/deserialization? Are you working with the same ObjectContext >> and the same instances of all objects, or are you refetching them fresh? >> Same ObjectContext or different ones)? >> >> Andrus >> >> >> On Sep 13, 2011, at 4:47 PM, Christian Grobmeier wrote: >>> Hi folks, >>> >>> i tried this, i didn't work. Any more ideas? >>> One thing I should note: it doesn'ht happen all the time >>> unfortunately. Its only sometimes and I really don't know why. >>> >>> More ideas appreciated.... >>> >>> Cheers >>> Christian >>> >>> >>> >>> On Tue, Sep 6, 2011 at 5:42 PM, Michael Gentry <mgen...@masslight.net> >>> wrote: >>>> Hi Christian, >>>> >>>> I suspect it is because you are creating the UserRole outside the >>>> DataContext. Try something like: >>>> >>>> UserRoles userRoles = user.getObjectContext.newObject(UserRoles.class); >>>> userRoles.setUser(user); >>>> userRoles.setRole(role); >>>> >>>> mrg >>>> >>>> >>>> On Tue, Sep 6, 2011 at 11:14 AM, Christian Grobmeier >>>> <grobme...@gmail.com> wrote: >>>>> Folks, >>>>> >>>>> I need your help. An error in my app bugs me and I am looking >>>>> desperately were it could happen. >>>>> >>>>> The use case is: >>>>> - create a user >>>>> - create a user_role object >>>>> - select one of the existing roles >>>>> - connect all together and commit >>>>> >>>>> I see that all values are correct in the database (mysql console) >>>>> >>>>> But after the user registered, my app fails with the error "no role". >>>>> >>>>> What I do is basically: >>>>> >>>>> ur = User.getUserRoles(); >>>>> foreach ur: >>>>> r = ur.getRole() >>>>> >>>>> >>>>> And the r reference is null. I am not sure what I am doing wrong. Any >>>>> hints what I could check in my Cayenne app? >>>>> >>>>> I add a role to a user liek this: >>>>> >>>>> User user ... >>>>> >>>>> UserRoles userRoles = new UserRoles(); >>>>> userRoles.setUser(user); >>>>> userRoles.setRole(role); >>>>> user.addToUserRoles(userRoles); >>>>> role.addToRolesToJoin(userRoles); >>>>> >>>>> Any hints highly apprecitated - thanks in advance >>>>> >>>>> Christian >>>>> >>>> >>> >>> >>> >>> -- >>> http://www.grobmeier.de >>> >> >> > > > > -- > http://www.grobmeier.de >