Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] @BasicCollection not updating on merge

Thanks so much for your help. 

While going through the steps to try all the stuff you said, I discovered
that I wasn't removing the roles from the Set. When I switched it to a List,
it was inserting multiple copies because I wasn't clearing the original ones
before adding the new ones.

It is all working well now, sorry for the trouble.

Cheers,
Stephanie


James Sutherland wrote:
> 
> Your mapping looks correct.  Could you include the code you use to
> read/update/merge the object, and the version of EclipseLink you are
> using.
> 
> If you make the relationship lazy, or use a List instead of Set, or update
> the managed object instead of merging, does it work?
> 
> 
> 
> Stephiems wrote:
>> 
>> I haven't really used a BasicCollection before, so it is possible I'm not
>> using it correctly.
>> 
>> Basically I've set-up a User-Role relationship, and I've used a
>> BasicCollection for the roles. I've got it working so that on persist,
>> the roles are also persisted and so when I get that same object again, I
>> have the roles that were originally persisted. My trouble is now on
>> merge. When I change the Set that holds the roles, and then merge or
>> commit, the database does not update. I know I am mergine the object
>> correctly because if I change a different value that is updating in the
>> database, it is only the roles that don't seem to be cascading.
>> 
>> From my User class:
>> 
>> @ObjectTypeConverter (
>>     name = "roleEnumFromStringConversion",
>>     objectType = Role.class,
>>     dataType = String.class,
>>     conversionValues = {
>>         @ConversionValue(objectValue = "ADMIN_ROLE", dataValue =
>> "ADMIN"),
>>         @ConversionValue(objectValue = "USER_ROLE", dataValue = "USER")
>>     }
>> )
>> 
>> AND
>> 
>> @BasicCollection(
>>         fetch = FetchType.EAGER,
>>         valueColumn = @Column(name = "ROLE")
>>     )
>>     @CollectionTable(
>>         name = "USER_ROLE",
>>         primaryKeyJoinColumns = {
>>             @PrimaryKeyJoinColumn(name = "USER_ID", referencedColumnName
>> = "USER_ID")
>>         }
>>     )
>>     @Convert("roleEnumFromStringConversion")
>>     private Set<Role> roles;
>> 
>> Thanks ahead of time for your help,
>> Stephanie
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/%40BasicCollection-not-updating-on-merge-tp25109889p25145437.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.



Back to the top