首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >仅限Gwt-rpc使用DAO。摆脱DTO

仅限Gwt-rpc使用DAO。摆脱DTO
EN

Stack Overflow用户
提问于 2015-07-21 21:30:59
回答 1查看 198关注 0票数 0

我即将启动新的java项目,我认为GWT是我的框架。

我在互联网上看过很多文章(主要文档也是),我很困惑。

所以我问你:

我可以使用jpa实体与DAO一起工作,并通过网络发送到客户端吗?

我真的不明白DTO的概念(写的模型几乎相同,但更差)

如果我要通过网络向客户端发送实体,如何使用可序列化的临时注释来不序列化和发送方法、类的参数?有可能吗?

所有这些将如何与泛型类型化的由正确的类实现扩展的超类一起工作?

f.e:

代码语言:javascript
运行
AI代码解释
复制
public class GenericModel extends GenericModel<T> {
     //some generic code
}

public class RightModel extends GenericModel<RightModel> {
    // some right class code
}

刀也一样..。

请帮帮忙。我指望你的经验。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-22 00:07:18

不是说我当时是专家,而是当我开始将Hibernate (不是JPA本身)和GWT结合起来时,这是一种痛苦。

您不能仅仅发送Hibernate托管对象(不管底层技术如何,对JPA来说都是如此)的原因是,它们包含字节码操作,比如javassist。GWT一点也不喜欢这样,您不能通过GWT线路发送这些对象。

当然,这也是没有意义的:当您在DAO上调用getter时,您不能期望Javascript (客户端)调用SQL来延迟加载集合(因为这就是服务器端对这些DAO对象所做的事情,这就是Javascript魔术在背后所做的)。

我不确定即使所有的集合都被急切地加载了,您的对象也没有javassist,并且可以通过GWT进行序列化。这给您留下了一种选择,即定制POJO对象,使其只包含客户端当前需要的部分(属性/集合)-- 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的自定义类,这可能是一种方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31554566

复制
相关文章
YouTube API
YouTube API 能够让你搜索 YouTube 上的视频并且把它们显示在你的站点上。而且可以让你通过 API 上传视频。
Denis
2023/04/13
1.7K0
rails api+react+jwt验证教程
5.在models的application_record.rb中添加has_secure_password字段
不知雨
2019/01/14
1.5K0
「简单实战」YouTube Iframe API 的使用
业务需求需要在自己的网页上嵌入油管( youtube )上的视频,所以去踩了油管 IFrame Player API 的坑。其实和大多数国内视频网站的 ifram Embed 方式是相似,比如说爱奇艺、腾讯视频、优酷等。在这些视频网站上你会发现都有分享功能,其中有一项就是通用代码。油管提供的 IFrame Player API 也是类似的方案。
拾贰
2019/08/28
4.4K0
「简单实战」YouTube Iframe API 的使用
Rails MVC 和 CRUD(12)
保存成功就直接显示,如果保存失败,就重绘 new 页面,new 页面中加入了对错误信息的显示
franket
2021/11/25
2620
Rails MVC 和 CRUD(3)
要在 Rails 中显示“My first test” 的静态页面,需要新建一个控制器和视图
franket
2021/11/24
7260
Rails MVC 和 CRUD(5)
创建了一个叫 ArticlesController 的类,继承自 ApplicationController
franket
2021/11/24
3460
Rails MVC 和 CRUD(7)
(这里的 /articles 明明对应两个方法,GET、POST ,有点不太明白,为什么这样指定就一定成了POST请求)
franket
2021/11/24
2010
Rails MVC 和 CRUD(9)
保存数据 修改 create 方法,对提交的数据进行保存 [root@h202 blog]# vim app/controllers/articles_controller.rb [root@h202 blog]# cat app/controllers/articles_controller.rb class ArticlesController < ApplicationController def new end def create # render plain: params
franket
2021/11/25
1940
Rails MVC 和 CRUD(15)
点击 【Destroy】 后会根据我们的定义弹出提示 连续删除几次后所剩无几 目前已经通过 Rails 实现了文章的 新建、显示、列出、更新、删除 操作 ---- 命令汇总 rails server -b 0.0.0.0 rails generate controller welcome index cat app/views/welcome/index.html.erb vim config/routes.rb grep -v " #" config/routes.rb | grep -v
franket
2021/11/25
3590
Rails MVC 和 CRUD(2)
MVC 分块设计有助于管理复杂的应用程序,因为可以在一段时间内只用关注一个方面;例如,可以在不依赖业务逻辑的情况下专注于视图设计;同时也让应用程序的测试更加容易;MVC 分层同时也简化了分组开发;不同的开发人员可同时开发视图、控制器逻辑和业务逻辑
franket
2021/11/24
3790
Rails MVC 和 CRUD(13)
定义 update 方法,并且添加 edit 链接和 show 链接 [root@h202 blog]# vim app/controllers/articles_controller.rb [root@h202 blog]# cat app/controllers/articles_controller.rb class ArticlesController < ApplicationController def new @article = Article.new end def
franket
2021/11/25
1710
Rails MVC 和 CRUD(8)
再次提交一回 ---- 创建模型 Rails 提供了一个生成器用来创建模型 [root@h202 blog]# bin/rails generate model Article title:string text:text Running via Spring preloader in process 13216 invoke active_record create db/migrate/20160422140912_create_articles.rb c
franket
2021/11/25
2740
Rails MVC 和 CRUD(1)
Rails 的相关基础,详细可以参考 官方文档 和 Ruby China 的 Rails 入门
franket
2021/11/24
3510
Rails MVC 和 CRUD(10)
再次加载 可以成功显示了 ---- 列出所有文章 [root@h202 blog]# vim app/controllers/articles_controller.rb [root@h202 blog]# cat app/controllers/articles_controller.rb class ArticlesController < ApplicationController def new end def create # render plain: params[:ar
franket
2021/11/25
1900
Rails MVC 和 CRUD(6)
不过,通过查看源码,我们可以看到 action 部分指向的是当前页面 action="/articles/new" , 而这个页面 (Restfull API) 应该是用来进行显示的,而不是进行处理的
franket
2021/11/24
2740
Rails MVC 和 CRUD(11)
列表页面多出来两个链接,点击 【New article】 成功跳转到了添加页面,随便输入点什么,提交 自动跳转到了显示页面,点击【Back】 跳转回了所有列表页面 Tip: 之所以每做一次修改都能直接生效,是因为在开发模式下(默认),每次请求 Rails 都会自动重新加载程序,因此修改之后无需重启服务器 ---- 数据验证 我们常常有对输入进行校验的需求,以避免接受到了无效或不合规范的数据 [root@h202 blog]# vim app/models/article.rb [root@h
franket
2021/11/25
2800
Rails MVC 和 CRUD(14)
删除文章 在 controllers 中定义 destory 方法 然后在 index 视图中加入 Destroy 链接 [root@h202 blog]# vim app/controllers/articles_controller.rb [root@h202 blog]# cat app/controllers/articles_controller.rb class ArticlesController < ApplicationController def new @article
franket
2021/11/25
2230
Rails MVC 和 CRUD(4)
结果展示了当前的一系列 Restfull API 与 Controller#Action 的对应关系
franket
2021/11/24
4170
Rails布局和视图渲染
基于“多约定,少配置”原则,在 index 动作末尾并没有指定要渲染的视图,Rails会自动在控制器的视图文件夹中寻找 action_name.html.erb 模板,然后渲染。这里渲染的就是 app/views/books/index.html.erb
用户1515472
2019/07/24
3.4K0
rails -help
rails new APP_PATH [选项] //APP_PATH项目名称
不知雨
2018/11/13
2.6K0

相似问题

如何防止CSS动画在页面加载?

16

如何让webrat / selenium“等待”页面的CSS加载?

21

防止CSS3动画在页面加载后触发

24

页面加载后等待元素加载

20

Jquery等待/页面加载

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文