Thanks David. I tried LAZY and EAGER. Both caused the problem.
For #2, that seems promising. There's an EntityManager clear method, but that would affect all threads using the entity manager. Any thoughts on how to do that detach? On Nov 8, 8:20 pm, David Chandler <drfibona...@google.com> wrote: > Hi dparish, > > There are three issues here: > > 1. GWT needs a fully populated object graph to send back to the > client. Lazy fetching will not work across the client / server > boundary, so you must ensure that your code fetches all relations > eagerly (via an annotation or a separate call if needed). > > 2. JDO and JPA implementations use proxy classes for objects attached > to a persistence manager. Before they can be sent back to the client, > you must detach all objects from the PM. > > 3. Even then, GWT won't be able to serialize any types for which it > doesn't know the source (like App Engine's Key class). The open source > Gilead project and others like Objectify provide GWT wrappers for > these. > > HTH, > /dmc > > > > > > > > > > On Mon, Nov 8, 2010 at 8:17 PM, dparish <dpar...@gmail.com> wrote: > > I have an entity with a member like this: > > > @Entity > > public class Foo implements Serializable{ > > > �...@onetomany(mappedBy="foo",targetEntity=InternalText.class, > > fetch=FetchType.EAGER) // I tried Lazy too. > > > private ArrayList<InternalText>internalTextEntries; > > > When I try to use Foo I get this error: > > > Throwable occurred: > > com.google.gwt.user.client.rpc.SerializationException: Type > > 'org.apache.openjpa.util.java$util$ArrayList$proxy' was not included > > in the set of types which can be serialized by this > > SerializationPolicy or its Class object could not be loaded. For > > security purposes, this type will not be serialized.: instance = > > [blah.blah.entities.internalt...@36ae36ae, > > blah.bhla.entities.internalt...@3fca3fca, > > blah.blah.retain.entities.internalt...@42474247, > > blah.blah.entities.internalt...@48724872] > > at > > com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.seriali > > ze(ServerSerializationStreamWriter.java: > > 610) > > at > > com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.write > > Object(AbstractSerializationStreamWriter.java: > > 129) > > at > > com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter > > $ValueWriter$8.write(ServerSerializationStreamWriter.java:152) > > at > > com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.seriali > > zeValue(ServerSerializationStreamWriter.java: > > 534) > > at > > com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.seriali > > zeClass(ServerSerializationStreamWriter.java: > > 700) > > > From what I can tell openjpa is creating a helper representation of > > ArrayList that it uses to assist in monitoring and lazy loading the > > child table. I've tried eager and lazy fetching. > > > I tried this: > > > ArrayList<InternalText> newText = new ArrayList<InternalText>(); > > for (InternalText textItem: foo.getInternalTextEntries()) { > > newText.add(textItem); > > } > > foo.setInternalTextEntries(newText); > > > It got past my error, but then the next layer down had trouble (Date > > in the InternalText class) > > > Type 'org.apache.openjpa.util.java$util$Date$proxy' was not included > > in the set of types which can be serialized by this > > SerializationPolicy > > > -- > > You received this message because you are subscribed to the Google Groups > > "Google Web Toolkit" group. > > To post to this group, send email to google-web-tool...@googlegroups.com. > > To unsubscribe from this group, send email to > > google-web-toolkit+unsubscr...@googlegroups.com. > > For more options, visit this group > > athttp://groups.google.com/group/google-web-toolkit?hl=en. > > -- > David Chandler > Developer Programs Engineer, Google Web > Toolkithttp://googlewebtoolkit.blogspot.com/ -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-tool...@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.