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.