You're welcome.


On Apr 8, 11:40 am, Neto <jpe.n...@gmail.com> wrote:
> Hi, i didnt have the element
>
>  <property name="datanucleus.maxFetchDepth" value="1"/>
>
> in the jdoconfig.xml file, but i added it with a value of 2 and it
> indeed solved the problem.
>
> I was about to use your suggestion, but since the fecth depth worked,
> for now this is all i need!
>
> Thanks alot for your help, you saved me a lot of work!
>
> On Apr 7, 4:13 pm, Ian Marshall <ianmarshall...@gmail.com> wrote:
>
> > The problem could be due to fetch depth. In my jdoconfig.xml file, I
> > have
>
> >   <property name="datanucleus.maxFetchDepth" value="1"/>
>
> > which is the default value.
>
> > I use transactions for my data exchange with the datastore using JDO
> > for everything except queries which can return entities from more than
> > one entity group.
>
> > What I do is:
>
> >   ·  Retrieve or get an instance of A.
> >   ·  "Touch" = retrieve the instance of B from A (A.getB()?)
> >   ·  "Touch" = retrieve the instance of C from B (B.getC()?)
>
> > whilst in the transaction and before detaching. Then you should have
> > what you need.
>
> > What I do (and it's not optimised but it works) is have a generalised
> > business method like
>
> >   /**
> >    * For each object in the list supplied, fetches explicitly all
> > fields
> >    * which represent either persistent objects or lists (of any
> > object),
> >    * in order to force their loading into the persistent object.
> >    * This method traverses one generation only in each direction.
> >    * (To traverse another generation, a fresh call to the database
> >    * will be needed to yield the relevant object(s) from the correct
> >    * source generation.)
> >    * @param liList The list of persistence objects to be traversed.
> >    */
> >   private static void fetchChildAndParentFields(ArrayList liList)
> >   {
> >     ListIterator iterList = liList.listIterator();
>
> >     while (iterList.hasNext())
> >     {
> >       Object obj = iterList.next();
>
> >       if (obj instanceof User)
> >       {
> >         User user = (User)obj;
>
> >         ArrayList<UserDetails> liUserDetails = user.getUserDetails();
> >         if (liUserDetails != null)
> >           liUserDetails.size();
>
> >         ImageDataTemp idtImageDataTemp = user.getImageDataTemp();
>
> >         ArrayList<CommissionReceived> liCommissionsReceived =
> >          user.getCommissionsReceived();
> >         if (liCommissionsReceived != null)
> >           liCommissionsReceived.size();
> >       }
> >       else if ...
> >       ...
> >     }
> >   }
>
> > which is called within the transaction before detachment. I then know
> > that I have got the next layer of objects already fetched and ready
> > for use and abuse.
>
> > On Apr 7, 1:19 pm, Neto <jpe.n...@gmail.com> wrote:
>
> > > I have a mistake above: by
>
> > > I retrieve a "A" object and than detach it. I can acess the listB field 
> > > just
> > > fine, but when i try to acess the* working hours*, i get the following
> > > error:
>
> > > e mean
>
> > > I retrieve a "A" object and than detach it. I can acess the listB field 
> > > just
> > > fine, but when i try to acess the *listC*, i get the following error:
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to