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
> 

Reply via email to