thanks jason for clarifying this. just to be sure since Larry's class
carries the detachable=true annotation:

keep detachable memcached objects their ability to be re-attached
later on?

thanks,
andr


On 21 Okt., 18:22, Larry Cable <[email protected]> wrote:
> cheers ... makes sense!
>
> On Oct 20, 2:05 pm, "Jason (Google)" <[email protected]> wrote:
>
>
>
> > No. The StreamingQueryResult class, which is a List used by DataNucleus to
> > store query results, does not implement Serializable which is required for
> > all objects stored in memcache. But you can create another List, i.e. an
> > ArrayList, copy the (serializable) results into it, and cache this. You'll
> > also need to do this if you want to send query results over the wire to a
> > GWT-based application, for example.
> > - Jason
>
> > On Mon, Oct 19, 2009 at 2:03 PM, Larry Cable <[email protected]> wrote:
>
> > > quick question: should I be able to directly serialize (Cache.put
> > > (...)) results of JDO queries into Memcache?
>
> > > It "appears" not ...
>
> > > I have the following class(es):
>
> > > @PersistenceCapable(identityType=IdentityType.APPLICATION,
> > > objectIdClass=CityState.CityStateKey.class, cacheable="true",
> > > detachable="true")
> > > public class CityState implements Serializable {
> > >        public static class CityStateKey implements Serializable {
>
> > >               �...@notpersistent
> > >                private static Pattern p =
> > > Pattern.compile("^(.*),\\s?([A-Za-z]{2})
> > > $");
>
> > >                public CityStateKey() { }
>
> > >                public CityStateKey(String keyValue) {
> > >                        final Matcher m = p.matcher(keyValue.trim());
> > >                        if (m.matches()) {
> > >                                city  = m.group(1);
> > >                                state = State.valueOf((m.group(2))).name();
> > >                        } else
> > >                                        throw new
> > > IllegalArgumentException(keyValue);
> > >                }
>
> > >                /* (non-Javadoc)
> > >                 * @see java.lang.Object#hashCode()
> > >                 */
> > >               �...@override
> > >                public int hashCode() {
> > >                    // elided ...
> > >                }
>
> > >                /* (non-Javadoc)
> > >                 * @see java.lang.Object#equals(java.lang.Object)
> > >                 */
> > >               �...@override
> > >                public boolean equals(Object obj) {
> > >                                    // elided...
> > >                }
>
> > >                public String toString() { return (city + 
> > > Address.COMMASPACE
> > > +
> > > state); }
>
> > >                public String            state;
> > >                public String            city;
> > >        }
>
> > >        public CityState(final String city, final String state) {
> > >                this.city  = city.trim();
> > >                this.state = state;
> > >        }
>
> > >       �...@override
> > >        public String getCity() {
> > >                return city;
> > >        }
>
> > >       �...@override
> > >        public String getState() {
> > >                return state;
> > >        }
>
> > >        /* (non-Javadoc)
> > >         * @see java.lang.Object#hashCode()
> > >         */
> > >       �...@override
> > >        public int hashCode() {
> > >                     // elided...
> > >        }
>
> > >        /* (non-Javadoc)
> > >         * @see java.lang.Object#equals(java.lang.Object)
> > >         */
> > >       �...@override
> > >        public boolean equals(Object obj) {
> > >                    // elided...
> > >        }
>
> > >       �...@override
> > >        public String toString() { return city + Address.COMMASPACE +
> > > state; }
>
> > >       �...@persistent(primaryKey="true") public String state; // should be
> > > State GAE/JDO does not support...
> > >       �...@persistent(primaryKey="true") public String city;
> > > }
>
> > > when I query "select from CityState" via JDO I get a
> > > StreamingQueryResult ...
>
> > > if I attempt to put that as a value into memcache I get the typical
> > > NotSerializableException indicating that
> > > an object in the graph is not serializable ...
>
> > > any thoughts/suggestions, clearly the (simple) app domain objects are
> > > (both) serializable as are the
> > > internal fields ...
>
> > > Thanks- Hide quoted text -
>
> > - Show quoted text -- Zitierten Text ausblenden -
>
> - Zitierten Text anzeigen -

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to