我的思维是否正确,如果想要使用JDO持久化一个业务对象(如Stock),并通过RPC来回传送客户端,那么必须为该对象创建两个单独的类:一个与JDO注释用于在服务器上持久化,另一个是可序列化的并且在RPC上使用?
我注意到,看守者有不同的课程,我可以理解为什么:
>否则gwt编译器会尝试
为所有内容生成javascript
持久化类引用
JDO和com.google.blah.users.User等
>服务器端也可能有逻辑
不适用于客户的课程
反之亦然。
我只是想确保我正确理解这一点。我不想要创建两个版本的所有我的业务对象类,我想使用RPC,如果我不必。
简短的答案是:您不需要创建重复的类。我建议您从以下Google群组讨论gwt-contribution列表中查看:
http://groups.google.com/group/google-web-toolkit-contributors/browse_thread/thread/3c768d8d33bfb1dc/5a38aa812c0ac52b
这是一个有趣的摘录:
If this is all you’re interested in, I
described a way to make GAE and
GWT-RPC work together “out of the
box”. Just declare your entities as:
@PersistenceCapable(identityType =
IdentityType.APPLICATION, detachable
= “false”) public class MyPojo implements Serializable { }and everything will work, but you’ll
have to manually deal with
re-attachment when sending objects
from the client back to the server.
您可以使用此选项,您将不需要镜像(DTO)类。
您还可以尝试gilead(以前的hibernate4gwt),它会在增强对象序列化的问题中处理一些细节。