Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] What is the correct wayto remove master-detail relation

Hey Leon,
I gave you some bad information, cascade remove is used to remove all
the child relationships when you remove a parent, it doesn't work the
other way around like cascade persist does.

So yea, you have to explicitly call em.remove to remove your entity.

Sorry about that :)

On Tue, Jun 3, 2008 at 5:34 AM, Leon Derks <leon.derks@xxxxxxxxxx> wrote:
> Hoi Mathias,
>
> Thanks.
>
> Okay, but what is missing in my ORM mapping? And what is then the use of
> cascade = REMOVE?
>
> Leon
>
> Mathias Walter wrote:
>>
>> Hi Lean,
>>
>>
>>>
>>> Why is my characteristic not removed?
>>>
>>
>> Because EclipseLink does not know, if the characteristic object is used by
>> any other object. In theory, EclipseLink could know this, if the ORM is
>> complete. But sometimes it is not complete and the object could relate to
>> any other database object.
>>
>> Therefore you have to use the PrivateOwned annotation, as Shaun already
>> posted. That would solve your problem. Keep it a try!
>>
>> --
>> Kind regards,
>> Mathias
>>
>>
>>>
>>> I would expect eclipselink to remove my characteristic when I do
>>> product.remove(characteristic), because of the cascade = REMOVE.
>>> Do I have to do entitymanager.remove(characteristic)? And if so, why do I
>>> have to do both?
>>>
>>> Leon
>>>
>>>
>>>
>>> Shaun Smith wrote:
>>>
>>>>
>>>> Hi Leon,
>>>>
>>>>   In JPA, to delete an object in a collection you need to
>>>
>>> remove it from the
>>>>
>>>> collection and then call entityManager.remove(..).
>>>
>>> EclipseLink adds support for
>>>>
>>>> orphan management through a relationship defined as
>>>
>>> "private owned".  If you
>>>>
>>>> specify that a collection is private owned then removing an
>>>
>>> element from the
>>>>
>>>> collection and committing your transaction will cause it to
>>>
>>> be deleted on the
>>>>
>>>> database.
>>>>   For more info see:
>>>>
>>>
>>> http://wiki.eclipse.org/Using_EclipseLink_JPA_Extensions_(ELUG
>>> )#How_to_Use_the_.40PrivateOwned_Annotation
>>>
>>>>
>>>>   Shaun
>>>>
>>>> Leon Derks wrote:
>>>>
>>>>>
>>>>> Hi Tim,
>>>>>
>>>>> I already tried that, but couldn't get it working.
>>>>> I will try it again.
>>>>>
>>>>> Thank you.
>>>>> Leon
>>>>>
>>>>>
>>>>> Tim Hollosy wrote:
>>>>>
>>>>>>
>>>>>> Leon,
>>>>>> Remove it from your list directly, and as long as you have
>>>>>> CascadeType.REMOVE set on your relationship it will
>>>
>>> remove it from the
>>>
>>>>>>
>>>>>> database.
>>>>>>
>>>>>> Tim
>>>>>>
>>>>>> On Mon, Jun 2, 2008 at 12:02 PM, Leon Derks
>>>
>>> <leon.derks@xxxxxxxxxx> wrote:
>>>
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> Hello
>>>>>>>
>>>>>>> I have the follwing Objects:
>>>>>>>
>>>>>>> Product {
>>>>>>> List<Characteristic> characteristics;
>>>>>>> List<ImageInfo>imageInfos
>>>>>>> }
>>>>>>>
>>>>>>> Characteristic{
>>>>>>> Product product;
>>>>>>> }
>>>>>>> ImageInfo{
>>>>>>> Product product.
>>>>>>> }
>>>>>>>
>>>>>>> But what is the best way to remove a Characteristic object?
>>>>>>>
>>>>>>> I prefer doing: entityManager.remove(characteristic);
>>>>>>> But then the characteristic is still in the List in the
>>>
>>> Product. Why isn't
>>>
>>>>>>>
>>>>>>> the entity cache automatically updated?
>>>>>>> How can I clear the cache manually?
>>>>>>>
>>>>>>> Leon
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> eclipselink-users mailing list
>>>>>>> eclipselink-users@xxxxxxxxxxx
>>>>>>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> eclipselink-users mailing list
>>>>> eclipselink-users@xxxxxxxxxxx
>>>>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>>>>>
>>>>
>>>> --
>>>>
>>>>
>>>> Oracle <http://www.oracle.com>
>>>> Shaun Smith | Principal Product Manager, TopLink | +1.905.502.3094
>>>> Oracle Fusion Middleware
>>>> 110 Matheson Boulevard West, Suite 100
>>>> Mississauga, Ontario, Canada L5R 3P4
>>>>
>>>>
>>>
>>> --------------------------------------------------------------
>>> ----------
>>>
>>>>
>>>> _______________________________________________
>>>> eclipselink-users mailing list
>>>> eclipselink-users@xxxxxxxxxxx
>>>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>>>>
>>>
>>> _______________________________________________
>>> eclipselink-users mailing list
>>> eclipselink-users@xxxxxxxxxxx
>>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>>>
>>
>> _______________________________________________
>> eclipselink-users mailing list
>> eclipselink-users@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>>
>>
>>
>
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>



-- 
./tch


Back to the top