Dear friends, thank you very much sent mail. I will recive to allready massage any time. Who every one told me Question than Give any time give answer.
Bhim Bdr. Khadka Lalrakshak Prakashan Pvt. Ltd On Sun, Apr 18, 2010 at 11:35 AM, sreenidhi b.s <[email protected]>wrote: > > > http://groups.google.com/group/google-appengine-java/browse_thread/thread/fd8043e63ff6c22e/ > > the link above works only for persisting and retrieving hash maps ,but i > did not find any "proper" solution for updating and persisting the updated > hashmaps. > > > "You have to provide a new reference to the updated hashmap ,since > datastore cannot identify between updated and stale hashmap." > But it did not work in my case and i urge you to try the same before you > try alternatives. > > The Alternative i found was , > 1) retrieve the persisted hashmap , > 2) create a new hashmap reference to updated hashmap > 3) make the new reference persistent. > 4)delete the previous reference. > > code: /* i have used some custom classes ,but the you should be able to > understand the logic i've employed to get the solution */ > > > > /*Retrieve the persisted HashMap*/ > PersistenceManager pm0= PMF.get().getPersistenceManager(); > Query query0 = pm0.newQuery(VocabHashMap.class); > List<VocabHashMap> results1 = (List<VocabHashMap>) query0.execute(); > /*if there are no hashmaps, create a new one */ > if (results1.isEmpty()) > { > > > HashMap<String, Double> map = new HashMap<String, Double>(); > for (String a : linelist) { > Double freq = map.get(a); > map.put(a, (freq == null) ? 1 : freq + 1); > } > VocabHashMap vhm =new VocabHashMap(map); > pm0.makePersistent(vhm); > pm0.close(); > > } > else{ > > > for (VocabHashMap vhm : results1) { > > /*if you already have a hashmap,then update it */ > > HashMap<String,Double> map1=vhm.getMap(); /* assign a new reference to > retrieved hashmap */ > > for (String a : linelist) { > Double freq = map1.get(a); > map1.put(a, (freq == null) ? 1 : freq + 1); > } > > VocabHashMap vhm1=new VocabHashMap(map1); /* create a new hashmap*/ > pm0.makePersistent(vhm1); /*save the updated one */ > pm0.deletePersistent(vhm); /*delete the old reference */ > > } > > > > pm0.close(); > } > > > > > > > > > > > > On Sun, Apr 18, 2010 at 10:41 AM, seleronm <[email protected]> wrote: > >> Hi, >> >> I was useful referring to this thread. >> You might be also useful for it. >> >> >> http://groups.google.com/group/google-appengine-java/browse_thread/thread/fd8043e63ff6c22e/ >> >> Hope some of this helps. >> >> thanks. >> >> > I am not able to persist a HashMap field. This is how I define it: >> > >> > @Persistent(serialized = "true", defaultFetchGroup = "true") >> > private Map<String, Integer> items; >> > >> > When I create the Object which the Map is a field of, I instantiate >> > the Map as follows: >> > >> > items = new HashMap<String, Integer>(); >> > >> > When I update the "items" HashMap I try to persist the object by doing >> > the following: >> > >> > PersistenceManager pm = PMF.get().getPersistenceManager(); >> > // Query for Object (HashMap is a field of this Object) >> > // Update HashMap >> > pm.makePersistent(objectContainingHashMap); >> > >> > However, when I attempt to retrieve the object after persisting it and >> > read the HashMap it is always empty, as though I never updated it. >> > >> > Has anyone experienced this before? >> > >> > Thanks >> > >> > -- >> >> > 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 >> [email protected]. >> > To unsubscribe from this group, send email to >> [email protected]<google-appengine-java%[email protected]> >> . >> > For more options, visit this group athttp:// >> groups.google.com/group/google-appengine-java?hl=en. >> >> -- >> >> 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 >> [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<google-appengine-java%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/google-appengine-java?hl=en. >> >> > -- > 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 > [email protected]. > To unsubscribe from this group, send email to > [email protected]<google-appengine-java%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/google-appengine-java?hl=en. > -- who tell me I am eassy man -- 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 [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
