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

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