openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Craig L Russell <Craig.Russ...@Sun.COM>
Subject Re: Does OpenJPA replace Collections?
Date Wed, 08 Apr 2009 12:19:10 GMT

On Apr 8, 2009, at 2:18 AM, Craig L Russell wrote:

>
> On Apr 7, 2009, at 11:10 PM, Paul Copeland wrote:
>
>> Can OpenJPA replace a Collection when it is loaded?
>>
>> With the code below when the list is initially empty you need to  
>> create a List (ArrayList) so you can add elements to it. When I  
>> persisted new objects on the ManyToOne side and added them to the  
>> List that worked.  But the first time the List was loaded it seemed  
>> to replace my ArrayList with the newly loaded data and made an  
>> older reference to the ArrayList stale (no longer updated when more  
>> elements were added to myPcList).  This was all in one transaction.
>>
>> So now I wonder if the initial null List is a special case or if  
>> OpenJPA might replace the Collection anytime it decides to load it  
>> again.  Anyone know the answer?
>
> If the list is persistent and the class is enhanced, the collection  
> will always reflect what's in the database.
>>
>>
>> If I don't create an initial ArrayList how can I add elements when  
>> the List is empty?
>
> I'd recommend always having a non-empty list. Initialize it in the  
> constructor to an empty list and don't check it after that.

Oops that. I meant:
I'd recommend always having a *non-null* list. Initialize it in the  
constructor to an empty list and don't check it after that.

Craig
>
>
> Here's what it would look like:
>>
>> @OneToMany (mappedBy="ownerSide", fetch=FetchType.LAZY,  
>> cascade=CascadeType.PERSIST)
>> private List<MyPcObject> myPcList = new ArrayList<MyPcObject>();
>>
>> List<Promotion> getMyPcList()
>> {
>>     return myPcList;
>> }
>>
>>
> Craig
>>
>
> Craig L Russell
> Architect, Sun Java Enterprise System http://db.apache.org/jdo
> 408 276-5638 mailto:Craig.Russell@sun.com
> P.S. A good JDO? O, Gasp!
>

Craig L Russell
Architect, Sun Java Enterprise System http://db.apache.org/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!


Mime
View raw message