Gwt-rpc 仅使用 DAO。摆脱 DTO
Gwt-rpc usage DAO only. Get rid of DTO
我即将开始新的 java 项目,我认为 GWT 是我的框架。
网上查了很多文章(也有主要文档),我很困惑。
所以我问你:
我可以使用 jpa 实体与 DAO 一起工作,并通过网络发送给客户端吗?
对DTO的概念实在是不懂(写的跟Model差不多但是更差class)
如果我要通过网络将实体发送给客户端,如何使用可序列化的瞬态注释来不序列化和发送方法,class 的参数?有可能吗?
所有这些将如何与通用类型超级 class 扩展 class 实现一起工作?
f.e:
public class GenericModel extends GenericModel<T> {
//some generic code
}
public class RightModel extends GenericModel<RightModel> {
// some right class code
}
DAO 也一样...
请帮忙。
我指望你的经验。
并不是说我当时是专家,但是当我开始结合使用 Hibernate(不是 JPA)和 GWT 时,这很痛苦。
您不能只发送 Hibernate 托管对象的原因(我猜 JPA 的计数相同,不管底层技术如何),是因为它们包含字节码操作的东西,比如 javassist。 GWT 根本不喜欢这样,您不能通过 GWT RPC 线路发送这些对象。
当然这也没有意义:当您调用 [=25= 时,您不能期望 Javascript(客户端)调用 SQL 来延迟加载集合] 在你的 DAO 上(因为这就是服务器端发生的这些 DAO 对象的事情,这就是 javassist 魔术在你背后做的事情)。
我不确定即使所有集合都被急切加载,您的对象也不会包含 javassist 内容,并且可以通过 GWT-RPC 进行序列化。这给您留下了另一种选择,即定制 POJO 对象以仅包含您当时在客户端上需要的那些部分 (properties/collections) - DTO。
从那时起,GWT 发生了很多事情,我知道了一个与 RPC 完全不同的东西,那就是 RequestFactory(参见 http://www.gwtproject.org/doc/latest/DevGuideRequestFactory.html)。我自己没用过,但它声称 make it easy to build data-oriented (CRUD) apps with an ORM-like interface on the client
。因此,如果您不想为连接 RPC 构建自定义 类,那么这可能是可行的方法。
我即将开始新的 java 项目,我认为 GWT 是我的框架。
网上查了很多文章(也有主要文档),我很困惑。
所以我问你:
我可以使用 jpa 实体与 DAO 一起工作,并通过网络发送给客户端吗?
对DTO的概念实在是不懂(写的跟Model差不多但是更差class)
如果我要通过网络将实体发送给客户端,如何使用可序列化的瞬态注释来不序列化和发送方法,class 的参数?有可能吗?
所有这些将如何与通用类型超级 class 扩展 class 实现一起工作?
f.e:
public class GenericModel extends GenericModel<T> {
//some generic code
}
public class RightModel extends GenericModel<RightModel> {
// some right class code
}
DAO 也一样...
请帮忙。 我指望你的经验。
并不是说我当时是专家,但是当我开始结合使用 Hibernate(不是 JPA)和 GWT 时,这很痛苦。
您不能只发送 Hibernate 托管对象的原因(我猜 JPA 的计数相同,不管底层技术如何),是因为它们包含字节码操作的东西,比如 javassist。 GWT 根本不喜欢这样,您不能通过 GWT RPC 线路发送这些对象。
当然这也没有意义:当您调用 [=25= 时,您不能期望 Javascript(客户端)调用 SQL 来延迟加载集合] 在你的 DAO 上(因为这就是服务器端发生的这些 DAO 对象的事情,这就是 javassist 魔术在你背后做的事情)。
我不确定即使所有集合都被急切加载,您的对象也不会包含 javassist 内容,并且可以通过 GWT-RPC 进行序列化。这给您留下了另一种选择,即定制 POJO 对象以仅包含您当时在客户端上需要的那些部分 (properties/collections) - DTO。
从那时起,GWT 发生了很多事情,我知道了一个与 RPC 完全不同的东西,那就是 RequestFactory(参见 http://www.gwtproject.org/doc/latest/DevGuideRequestFactory.html)。我自己没用过,但它声称 make it easy to build data-oriented (CRUD) apps with an ORM-like interface on the client
。因此,如果您不想为连接 RPC 构建自定义 类,那么这可能是可行的方法。