Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] how to update entities with persisted entities

I'm guessing you want to be doing something like this:

//Loop through the groups 
List<CharacteristicGroup> importGroups = 
importData.getCharacterisicGroups(); 
for(int index = 0; index < importGroups.size(); index++) { 
    CharacteristicGroup importGroup = importGroups.get(index);
    importGroup = updateWithPersistedCharacteristicGroup(importGroup);
    importGroups.set(index, importGroup);
} 



Leon Derks-2 wrote:
> 
> I want the groups in my importData.getCharacterisicGroups() to be 
> updated with the persisted id, or the newly assigned id.
> 
> What I am seeing now, that only for new persited groups, the id is 
> automatically updated (viewing importData.getCharacterisicGroups() in 
> debugger perspective).
> But for groups that are already in de db (and had a result for 
> characteristicGroupDAO.findGroupByExample(importGroup) ), the id is not 
> updated and it stays 0.
> For this I do nothing extra.
> 
> How is this possible, that the id is only updated for newly persisted 
> groups.
> 
> What I want is each group in importData.getCharacterisicGroups() to 
> automatically be updated with the persisted group.
> 
> Leon
> 
> christopher delahunt wrote:
>> Hello Leon,
>>
>> I'm not sure I understand correctly.  I'm guessing that ImportGroup, 
>> if existing, is detached and contains changes that you want 
>> persisted.  I assume that findGroupByExample(importGroup) is just a 
>> simple query or find method that returns the managed instance of 
>> importGroup.  The problem then would be that you pass this managed 
>> copy into the makePersistent.  Since the managed copy doesn't have the 
>> changes, they are lost.  You need to merge the detached copy into the 
>> managed copy using the em.merge at some point.
>>
>> If this isn't the problem, please give more detail as to what data 
>> isn't being persisted and how you are actually finding and persisting 
>> your entities.
>>
>> Best Regards,
>> Chris
>>
>> Leon Derks wrote:
>>> I am seeing a behaviour which I can not explain.
>>>
>>> I have a list of groups (imported from an xml file)
>>> Then I loop through these groups and check if they already exist in 
>>> de db.
>>> I want them to be updated with the persisted group.
>>>
>>> In my debugger perspective I see that ids of new groups are updated 
>>> with the newly assigned id.
>>> But the groups that are already in the db are not updated with the 
>>> persisted id.
>>>
>>> The makePersistent method does a persist if id == 0 or else the 
>>> entity is merged.
>>>
>>> What I want is that all importGroups are updated with either the 
>>> persisted id, or a newly assigned id.
>>> At the moment only new groups are updated with an id.
>>>
>>> How is this possible?
>>>
>>> See below for code.
>>>
>>>
>>> //Loop through the groups
>>> List<CharacteristicGroup> importGroups = 
>>> importData.getCharacterisicGroups();
>>> for(CharacteristicGroup importGroup : importGroups) {
>>>    importGroup = updateWithPersistedCharacteristicGroup(importGroup);
>>> }
>>>
>>> private CharacteristicGroup 
>>> updateWithPersistedCharacteristicGroup(CharacteristicGroup 
>>> importGroup) {
>>>    CharacteristicGroup persistedGroup = 
>>> characteristicGroupDAO.findGroupByExample(importGroup);
>>>    if(persistedGroup != null) {
>>>         importGroup = persistedGroup;
>>>    }
>>>    characteristicGroupDAO.makePersistent(importGroup);
>>>    return importGroup;
>>> }
> 
> 


-----
---
http://wiki.eclipse.org/User:James.sutherland.oracle.com James Sutherland 
http://www.eclipse.org/eclipselink/
 EclipseLink ,  http://www.oracle.com/technology/products/ias/toplink/
TopLink 
Wiki:  http://wiki.eclipse.org/EclipseLink EclipseLink , 
http://wiki.oracle.com/page/TopLink TopLink 
Forums:  http://forums.oracle.com/forums/forum.jspa?forumID=48 TopLink , 
http://www.nabble.com/EclipseLink-f26430.html EclipseLink 
Book:  http://en.wikibooks.org/wiki/Java_Persistence Java Persistence 
-- 
View this message in context: http://www.nabble.com/how-to-update-entities-with-persisted-entities-tp20398832p20440349.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.



Back to the top