Hi Robert, For information, Gilead provides the @ServerOnly annotation to prevent sending sensible fields over the wire.
Regards Bruno On 15 avr, 05:39, Robert Hanson <iamroberthan...@gmail.com> wrote: > I hope I am not being naive (or reiterating an existing post), but I > am not concerned with identity, nor concerned with expecting my ORM > solution to deal with entities created on the client. > > I think all I need is a way to use an entity as a DTO without needing > a second set of model objects. > > What about something as simple as keeping the existing semantics in > tact, with the ability to flag properties that are send-able to the > client (as opposed to using transient to flag the reverse behavior). > > public class Data implements Serializable { > @GwtDto > private Long id; > @GwtDto > private String partA; > private String partB; > > } > > In this case the GWT compiler would create a serializer for the client > that only handled the id and partA properties, and ignore partB. The > partB property would simply be null on the client side. > > On the server reflection would be used to only serialize the marked > properties, ignoring the rest. Besides ignoring partB it would also > ignore any fields added by enhancers. > > Besides fixing GWT-RPC with GAE, it also allows me to trim data that I > don't really need o > > On Tue, Apr 14, 2009 at 2:18 PM, John Tamplin <j...@google.com> wrote: > > On Tue, Apr 14, 2009 at 1:28 PM, Ray Cromwell <cromwell...@gmail.com> wrote: > > >> On Tue, Apr 14, 2009 at 9:03 AM, John Tamplin <j...@google.com> wrote: > >> > The only way I see it working would be to add a flag requiring > >> > preserving > >> > object identity across RPC, and the protocol would include an object ID > >> > with > >> > each object if that flag is set. > > >> Actually, JDO has a concept called application identity where object > >> identity is handled by the application. This typically boils down to > >> the PrimaryKey being used as object identity. > > > Is there an equivalent for JPA? > > >> > what happens for a persistent object created on the client that the > >> > server > >> > has never seen before? > > >> Calling persist() on it would insert it rather than merge it. > > > Well, what I was getting at was more what does the server-side RPC code > > populate the hidden fields with if it gets a new object of that type from > > the client? > > > If the hidden fields can be null and the @PrimaryKey field will be used to > > determine if it is a new object or a replacement of an existing one, then it > > seems pretty easy -- the server-side RPC code simply strips out the effect > > of the bytecode rewriting for serialization. I don't know enough about what > > rewriting happens to know how to detect/reverse it, but it seems like it > > should be doable. > > > -- > > John A. Tamplin > > Software Engineer (GWT), Google --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---